如何在模型中设置Devise配置值

时间:2014-04-07 20:15:02

标签: ruby-on-rails devise

我有两个使用Devise的模型。一切都适当的范围和工作正常。

现在我想为每个模型设置不同的配置值。例如,在一个模型中,我想将allow_unconfirmed_access_for设置为几天,而在另一个模型中,我不想允许任何此类未经证实的访问。

这可以通过config/initializers/devise.rb顶部的Devise自己的文档...

# Use this hook to configure devise mailer, warden hooks and so forth.
# Many of these configuration options can be set straight in your model.

在模型中设置变量所需的语法是什么,而不是初始化程序?我目前在我的模型中有这个......

# Model Foo
Devise.setup do |config|
  config.allow_unconfirmed_access_for = 2.days
end

# Model Bar
Devise.setup do |config|
  config.allow_unconfirmed_access_for = 0.days
end

它似乎没有起作用......

1 个答案:

答案 0 :(得分:4)

根据a related post的建议,我了解到这些值被放置在应用Devise的模型中。所以我们只是处理普通的类变量。

我可以通过设置变量来获得所需的结果......

class User < ActiveRecord::Base

  devise  :database_authenticatable, :registerable, :rememberable,
          :trackable, :validatable, :timeoutable,
          :confirmable, :recoverable, :lockable

  # override Devise default config settings
  self.allow_unconfirmed_access_for = 2.days

  # ...