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

이것은 더 이상 작동하지 않습니다 (Devits 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"} 
관련 문제