Rails如何限制Devise用户的总数?

时间:2014-02-20 13:42:30

标签: ruby-on-rails

由于某些原因,我想限制Devise用户的总数,新用户在大于此数量时不会保存。

但我不知道怎么做,我在Devise doc中没有看到任何有关它的内容。

有人能帮帮我吗?感谢。

2 个答案:

答案 0 :(得分:0)

您可以修改设计注册控制器以在保存用户之前计算数据库中的用户数,或者您可以在用户模型中添加之前的创建回调来执行相同操作。

但是,在用户模型中执行该操作会导致用户出现无法修改的错误。

如果您在自定义设计注册控制器中执行此操作,则可以自定义错误以及应用程序如何处理错误。

Customize Devise Controller

答案 1 :(得分:0)

在您的模型中实现此功能比您的控制器更合适。
以下是一个例子:

class Moderator < ActiveRecord::Base
  before_create :check_moderator_limit

  private
  devise  :database_authenticatable,
          :trackable,
          :validatable,
          :timeoutable,
          :registerable

  def check_moderator_limit
    if Moderator.count > 3
      return false
    end
    true
  end
end