2012-06-27 14 views
17

En mi aplicación Rails, ¿cuál sería la forma de acceder a una variable de configuración Devise directamente desde una vista?Cómo acceder a las variables de configuración del inventor

Quiero mostrar config.allow_unconfirmed_access_for del módulo :confirmable de Devise. Esta variable se establece en el inicializador devise.rb:

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

¡Gracias!

+0

sugieren 'Devise.remember_for' - http://stackoverflow.com/a/34621814/1536309 –

Respuesta

20

Las configuraciones en el archivo devise.rb se replican en su modelo Devise, por lo que si su recurso Devise es User, debe poder acceder a él a través del User.allow_unconfirmed_access_for.

Por lo tanto, cree una variable de instancia en su controlador y asígnele este valor, y luego podrá mostrarlo en su vista.

+1

¡Funcionó como un amuleto, gracias! – dgilperez

+2

Esto ya no funciona (a partir del Deceptio 3.4.1) – ideaoforder

+0

Esto sigue siendo cierto para mí en el Devise 3.5.2. – dgilperez

3

La respuesta aceptada ya no es correcta. Para las versiones más recientes de Devise, las opciones de configuración se agregan al módulo principal Devise, p. Devise.allow_unconfirmed_access_for.

+0

'User.allow_unconfirmed_access_for' todavía funciona para mí en Devise 3.5.2. – dgilperez

+0

confirmado también en el dispositivo 3.5.10. en realidad ambos trabajan – dowi

0

Esto responde a una pregunta similar:

OmniAuth de configuración se almacena en un objeto omniauths_config dentro de un objeto stragety anidada

Devise.omniauth_configs 

rendimientos:

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

entonces el acceso a través de símbolos:

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"} 
Cuestiones relacionadas