2011-11-09 13 views
23

私はRails 3.0.9、Ruby 1.9.2、Devise 1.3.4を使用しています。リクエストURLパラメータにアクセスするにはDeviseセッションの新しいビューが必要ですが、これは一般的なRailsリクエスト取扱いの質問。基本的に、ユーザーをログイン画面にリダイレクトするDevise認証済みリソースへの要求が行われます。ログインビューでは、私は、例えば、リクエストURLへのアクセスを必要とし、これは、私がそのURLにアクセスする必要がある最初のリダイレクトのログインページでRails 3はリクエスト参照者を取得

http://mysite.com/article/5?type=blah 

で呼び出さ要求URLで、誰もが私にできる方法を知っていますこの?

答えて

42

コントローラでrequest.refererまたはrequest.env['HTTP_REFERER']を使用してrefererのURLを取得できます。

+0

これは、動作しませんでした、それはログイン画面のURLを示しています。それで、私はセッションコントローラを意味しました。コードを 'articles'コントローラに置くと、ログインが認証されるまで実行されません。 –

+0

あなたの要件を正しく理解していれば、ログイン操作の前のページにユーザーをリダイレクトする必要があります。ユーザーがログインをクリックしたときに、セッションにリダイレクトURLを保存しないのはなぜですか? – topek

+0

ログインページへのリダイレクトはすでに適切に処理されています。私はログインページにユーザーの信用を求めています。私は元のリクエストURLにアクセスする必要があります。元の呼び出しはブラウザではなく別のサーバーから発生することを明確にする必要があります。 –

3

WEBrickがrequest.referrerを正しく処理していることがわかりました。しかし、心配しないでください。ユニコーンはそれを正しく処理します。 私は他のサーバーでそれをテストしませんでした。これをあなたのものと一緒にチェックしてください。 WEBrickをプロダクションサーバーとして使用しているとは思いません。

+0

確かにWEBrickは適切ではありませんプロダクションサーバー。また、WEBrickとPumaが 'request.referrer'をどのように処理したかにも違いがあります.Webrickを使用して' request.referrer'が期待どおりに動作していないかどうか確認する価値があります。 – zelanix

関連する問題