2012-06-27 20 views
17

Nella mia app Rails, quale sarebbe il modo di accedere a una variabile di configurazione Devise direttamente da una vista?Accesso alle variabili di configurazione Devise

Desidero mostrare config.allow_unconfirmed_access_for dal modulo :confirmable di Devise. Questa variabile è impostata nell'inizializzatore devise.rb:

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

Grazie!

+0

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

risposta

20

Le configurazioni sul file devise.rb vengono replicate sul modello Devise, quindi se la risorsa Devise è User, è possibile accedervi tramite User.allow_unconfirmed_access_for.

Quindi, creare una variabile di istanza sul controller e assegnarvi questo valore, e quindi sarete in grado di mostrarlo sulla vostra vista.

+1

Ha funzionato come un fascino, grazie! – dgilperez

+2

Questo non funziona più (come in Devise 3.4.1) – ideaoforder

+0

Questo è ancora valido per me su Devise 3.5.2. – dgilperez

3

La risposta accettata non è più corretta. Per versioni più recenti di Devise, le opzioni di configurazione vengono aggiunte al modulo principale Devise, ad es. Devise.allow_unconfirmed_access_for.

+0

'User.allow_unconfirmed_access_for' funziona ancora per me su Devise 3.5.2. – dgilperez

+0

confermati anche nella versione 3.5.10. in realtà entrambi funzionano – dowi

0

Questo risponde a una domanda simile:

OmniAuth config è memorizzato in un oggetto omniauths_config all'interno di un oggetto stragety nidificato

Devise.omniauth_configs 

rendimenti:

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

quindi l'accesso tramite il simbolo:

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"} 
Problemi correlati