はじめに
開発ですぐに忘れそうなことを、簡単に再度調べられるようにするための備忘録です。
やりたいこと
元々いたページのパスをコントローラー側で受け取る。
具体例)
Blogのshow画面から、Contactのnew/createを呼び出して、
Blogのshow画面にリダイレクト。
方法
before_url = request.referer
を用いる。
ちなみに、遷移後の現在のURLを取得したい場合は、
## pathの取得
current_url = request.path
## urlの取得
current_url = request.url
のどちらかを用いる。
(pathの取得で良いのか、urlが必要なのかは、用途に応じて使い分ける。)
補足
request.refererを用いた時のrequest specでは、
HTTPヘッダを明記する必要があるため、
let(:headers) { { HTTP_REFERER: xxx_url } }
it "リクエストが成功する" do
post xxx_url, params: params, headers: headers
expect(response.status).to eq 302
end
のような形で、書くと良い。