【问题标题】:Accessing Devise Config Variables访问设计配置变量
【发布时间】:2012-06-27 17:17:01
【问题描述】:

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

我想展示来自 Devise 的 :confirmable 模块的 config.allow_unconfirmed_access_for。这个变量在devise.rb初始化器中设置:

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

谢谢!

【问题讨论】:

标签: ruby-on-rails devise


【解决方案1】:

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

所以,在你的控制器上创建一个实例变量并将这个值分配给它,然后你就可以在你的视图上显示它了。

【讨论】:

  • 在 Devise 3.5.2 上对我来说仍然如此。
【解决方案2】:

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

【讨论】:

  • User.allow_unconfirmed_access_for 在 Devise 3.5.2 上仍然适用于我。
  • 也在设计 3.5.10 中得到确认。实际上他们都工作
【解决方案3】:

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

OmniAuth 配置存储在嵌套策略对象内的 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"}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 2016-08-13
    • 2012-07-21
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    相关资源
    最近更新 更多