2011-09-14 10 views
6

ユーザがUserテーブルの特定のフィールドに基づいてサインインすると、セッション変数を設定したいと思います。私はカスタムDeviseコントローラを作成する必要はありませんしたい場合はしたくありません。方法はありますか?または、私はカスタムコントローラのルートに移動する必要がありますか?サインイン時にdeviseでセッション変数を設定する

答えて

12

は、あなたがそうでなければ、コールバックはsession[:domain_prefix]

+0

彼はログイン時に新しいセッション変数を追加するよう求めています。例:セッションでユーザーの名前を保持しています。 {私の例はまったく役に立たないが、これは彼が望むものだと思う} –

+0

私はコンテンツを修正するためにちょうど編集しました –

+0

-1取り戻されました:) –

5
のコンテンツへの要求をリダイレクトする、方法の最後の行にパスを返すあなたの ApplicationController

protected 

def after_sign_in_path_for(resource) 
    session[:domain_prefix] = current_user.domain_prefix 
    user_path(resource) 
end 

はいけない、それを忘れて追加することができ、コールバックafter_sign_in_path_forあり

どうすればいいですか:

私が見る最初のリソースはhttp://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-inです。また、いくつかのアイデアについてはHow to redirect to a specific page on successful sign up using rails devise gem?をチェックしてください。あなたのApplicationControllerにまたはカスタムRegistrationsControllerで、このメソッドを実装することができ

def after_sign_in_path_for(resource_or_scope) 
    session[:account_type] = current_user.account_type 

end 

あなたのような何かを行うことができます。

関連する問題