访问Devise Config变量

时间:2012-06-27 17:17:02

标签: ruby-on-rails devise

在我的Rails应用程序中,直接从视图访问Devise配置变量的方法是什么?

我想在Devise的config.allow_unconfirmed_access_for模块中显示:confirmable。此变量在devise.rb初始值设定项中设置:

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

谢谢!

3 个答案:

答案 0 :(得分:23)

devise.rb文件上的配置会在您的Devise模型上复制,因此如果您的设计资源为User,您应该可以通过User.allow_unconfirmed_access_for访问它。

因此,在控制器上创建一个实例变量并将该值赋给它,然后您就可以在视图中显示它了。

答案 1 :(得分:4)

接受的答案不再正确。对于更新的Devise版本,配置选项将添加到主Devise模块,例如Devise.allow_unconfirmed_access_for

答案 2 :(得分:3)

这回答了一个类似的问题:

OmniAuth配置存储在嵌套stragety对象中的omniauths_config对象中

Devise.omniauth_configs

返回:

{: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"}