Rails 3 を使用しています。私のアプリ全体は、Devise 2.2 を使用する登録ユーザーに制限されています。
私の要件:「ユーザーがサブスクライブしたときにアイテムXを表示したかった(item /:idが要求されたURLであった)」と言えること。可能な限り、ユーザーが登録時に見たかったアプリの項目を伝えます。
例 : ジョンは www.website/item/48 リンクをクリックしましたが、システムに登録されていません。devise が彼を devise ログイン ページにリダイレクトした後、彼は登録し、www.website/item/48 にリダイレクトされました (標準的なデバイスの動作)。その後、サイトの管理者は、ユーザー john@whatever.net がアイテム 48 を表示するためにアカウントを作成したことを確認できます。
現在、devise は最も古典的な方法でセットアップされておりbefore_filter :authenticate_user!
、すべてのコントローラーに a が含まれています。ログイン/購読ページは、デザインを除いてデフォルトのものと似ています。
device のデフォルトの登録コントローラーをオーバーライドしました:
class RegistrationsController < Devise::RegistrationsController
def new
super
logger.debug"--------------------------------"
logger.debug session.inspect
logger.debug params.inspect
logger.debug resource
logger.debug"--------------------------------"
end
def create
super
logger.debug"-----------------------------------"
logger.debug session.inspect
logger.debug params.inspect
logger.debug resource.inspect
logger.debug"-----------------------------"
end
end
要求された URL を Devise から取得する方法がわかりません。新しいアクション中にセッション変数でそれを見ることができますが、作成すると見つけることができません。
Deviseの作成アクションで要求されたURLを取得して保存するにはどうすればよいですか?