为范围设计模型设置不同的配置

时间:2020-01-13 14:12:02

标签: ruby-on-rails devise

在Rails应用中,如何基于devise模型设置不同的配置值? 假设我们有2个模型Admin和User。在devise.rb中设置配置值将应用于所有模型。如何为模型之一设置不同的配置? 我这样尝试过

class Admin < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :validatable
  self.allow_unconfirmed_access_for =0.days
end

但出现错误can't modify frozen class 我该如何解决。

谢谢!

2 个答案:

答案 0 :(得分:1)

找到有关您的问题here的现有StackOverflow帖子。显然,您可以在confirmation_required?模型中覆盖Admin方法,然后返回false以跳过Admin的确认步骤。请注意,它也将跳过发送Admin的注册电子邮件。

更新:

self.allow_unconfirmed_access_for = ...Admin.allow_unconfirmed_access_for = ...可用,但适用于旧版本。

对于最新版本,它是Devise.allow_unconfirmed_access_for =...(我想这就是您要查找的内容)

答案 1 :(得分:-1)

使Admin成为User类的继承者。然后已经为用户和管理员划定了访问权限