2012-06-27 9 views
17

私のRailsアプリケーションでは、Devise設定変数にビューから直接アクセスする方法は何でしょうか?Devise設定変数へのアクセス

Devitsの:confirmableモジュールからconfig.allow_unconfirmed_access_forを表示したいとします。この変数はdevise.rb初期化子に設定されている:

Devise.setup do 
    config.allow_unconfirmed_access_for = 3.days 
end 

ありがとう!

+0

「Devise.remember_for」を推奨 - http://stackoverflow.com/a/34621814/1536309 –

答えて

20

devise.rbファイルの設定は、Deviseモデルに複製されるため、DeviseリソースがUserの場合は、User.allow_unconfirmed_access_forからアクセスできます。

コントローラ上にインスタンス変数を作成し、この値を割り当てると、ビューにその変数を表示することができます。

+1

チャームのように働いてくれてありがとう! – dgilperez

+2

これはもはや動作しません(Devise 3.4.1以降) – ideaoforder

+0

これはDevise 3.5.2の私にはまだ当てはまります。 – dgilperez

3

受け入れられる回答は間違いです。より最近のDeviseのバージョンでは、設定オプションはメインのDeviseモジュールに固定されています。 Devise.allow_unconfirmed_access_for

+0

'User.allow_unconfirmed_access_for'はDevise 3.5.2でまだまだ私のために働いています。 – dgilperez

+0

も、考案3.5.10で確認されている。実際には両方とも動作します – dowi

0

これは、同様の質問に答える:

OmniAuthの設定を

Devise.omniauth_configs 

戻りネストさstragetyオブジェクト内omniauths_configオブジェクトに格納されている:

{:facebook=> 
    #<Devise::OmniAuth::Config:0x007fa6db95aa68 
    .... 

は、シンボルを介してアクセス:

Devise.omniauth_configs[:facebook].strategy

{"setup"=>true, 
"skip_info"=>false, 
"client_id"=>nil, 
"client_secret"=>nil, 
"client_options"=>{"site"=>"https://graph.facebook.com", "authorize_url"=>"https://www.facebook.com/dialog/oauth", "token_url"=>"/oauth/access_token"}, 
"authorize_params"=>{}, 
"authorize_options"=>[:scope, :display, :auth_type], 
"token_params"=>{"parse"=>:query}, 
"token_options"=>[], 
"auth_token_params"=>{}, 
"provider_ignores_state"=>false, 
"access_token_options"=>{"header_format"=>"OAuth %s", "param_name"=>"access_token"}, 
"scope"=>"email,public_profile,publish_actions", 
"info_fields"=>"email, first_name, last_name", 
"name"=>"facebook"} 
関連する問題