📲
Railsの`config/routes.rb`内に外部サイトにリダイレクトさせる処理を書く
意外と知らなかったので、調べたメモだけ備忘で残しておく。
内容
記述方法
- こういう感じで
redirect
メソッドを使えば、routesファイルへの記述だけで外部サイトにリダイレクトさせられる- Controllerを作るまでもない単純なリダイレクトをしたい場合は使っても良いかも
get 'hoge' => redirect('https://example.com')
テスト
- (当然だが)テストが実行されるたびに外部サイトにアクセスされるため、安易にテストを書かない方が良い
- 逆に、テストしたい場合はちゃんとControllerや専用のクラスを用意してstubしたほうが良い
- 調べたところ
puffing-billy
というgemを使えば外部サイトへの遷移をstubできそう- 一時的に必要なリダイレクト処理だったので、今回は使ってません
- 以下READMEより抜粋
Before('@billy') do
Capybara.current_driver = :poltergeist_billy
end
And /^a stub for google$/ do
proxy.stub('http://www.google.com/').and_return(text: "I'm not Google!")
visit 'http://www.google.com/'
expect(page).to have_content("I'm not Google!")
end
Discussion