2012-06-27 35 views
17

Rails uygulamasında, bir Devise yapılandırma değişkenine doğrudan bir görünümden erişmenin yolu ne olurdu?Devise Yapılandırma Değişkenlerine Erişme

Devise'nin :confirmable modülünden config.allow_unconfirmed_access_for ürününü göstermek istiyorum. Bu değişken devise.rb in başlatıcısı ayarlanır:

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

Teşekkür!

+0

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

cevap

20

devise.rb dosyasındaki yapılandırmalar, Devise modelinizde çoğaltılır; bu nedenle, Devise kaynağınız User ise, User.allow_unconfirmed_access_for aracılığıyla erişebilmeniz gerekir.

Bu nedenle, denetleyicinizde bir örnek değişkeni oluşturun ve bu değeri ona atayın, ardından bunu görünümünüzde gösterebilirsiniz.

+1

Bir çekicilik gibi çalıştık, teşekkürler! – dgilperez

+2

Bu artık çalışmıyor (Devise 3.4.1'den itibaren) – ideaoforder

+0

Bu hala Devise 3.5.2'de benim için geçerli. – dgilperez

3

Kabul edilen yanıt artık doğru değil. Daha yeni Devise sürümleri için, yapılandırma seçenekleri ana Devise modülüne, ör. Devise.allow_unconfirmed_access_for.

+0

'User.allow_unconfirmed_access_for' hala benim için Devise 3.5.2 üzerinde çalışıyor. – dgilperez

+0

da 3.5.1. aslında ikisi de çalışıyorlar – dowi

0

Bu da benzer bir soruya cevap verir:

OmniAuth yapılandırma

Devise.omniauth_configs 

döner iç içe bir stragety nesne içerisine omniauths_config nesne saklanır:

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

sonra sembolü aracılığıyla erişmek:

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"} 
İlgili konular