2012-06-27 15 views
17

W mojej aplikacji Rails, jaki byłby sposób dostępu do zmiennej konfiguracyjnej Devise bezpośrednio z widoku?Dostęp do zmiennych konfiguracyjnych Devise

Chcę pokazać config.allow_unconfirmed_access_for z modułu Devisego :confirmable. Ta zmienna jest ustawiona na devise.rb inicjator:

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

Dzięki!

+0

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

Odpowiedz

20

Konfiguracje na pliku devise.rb są replikowane w danym modelu Devise, więc jeśli Twój zasób Devise jest User, powinieneś mieć do niego dostęp poprzez User.allow_unconfirmed_access_for.

Utwórz więc zmienną instancji na kontrolerze i przypisz jej wartość, a następnie pokaż ją w swoim widoku.

+1

Pracował jak urok, dzięki! – dgilperez

+2

To już nie działa (od wersji 3.4.1) – ideaoforder

+0

To nadal jest prawdziwe dla mnie na Devise 3.5.2. – dgilperez

3

Przyjęta odpowiedź nie jest już poprawna. W przypadku nowszych wersji oprogramowania Devise opcje konfiguracji są przypisywane do głównego modułu Devise, np. Devise.allow_unconfirmed_access_for.

+0

'User.allow_unconfirmed_access_for' nadal działa dla mnie w Devise 3.5.2. – dgilperez

+0

potwierdzono również w opracowaniu 3.5.10. właściwie oboje pracują – dowi

0

Ta odpowiedź podobną pytanie:

OmniAuth konfiguracja jest przechowywany w obiekcie omniauths_config w zagnieżdżonego stragety

Devise.omniauth_configs 

zwrócone:

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

wtedy dostęp poprzez symbol:

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"} 
Powiązane problemy