如何限制Rails 4帐户的用户数量?

时间:2015-01-23 12:27:43

标签: ruby-on-rails ruby-on-rails-4 devise

我正在使用设计并使用Rails 4设计可用。

我知道我可以通过更改 config.invitation_limit 来限制devise.rb中受邀用户的数量。但是,我希望所有用户都能够邀请新用户,因此邀请限制仅为特定用户设置限制,而不是为整个帐户设置限制。

我想将帐户中的用户数量限制为最多15个。我怎么能这样做并向用户显示消息,例如:

    if User.count > 15
        flash.now[:error] = "user limit reached"
    else
        'there are <%= User.count %> users on this account'
    end

1 个答案:

答案 0 :(得分:1)

您可以在用户模型中进行验证。 因此,每个用户都应该属于其引荐来源,如

class User < AR::Base
  REFERRALS_LIMIT = 15

  belongs_to :referrer, class_name: 'User'
  has_many :referrals, foreign_key: 'referrer_id', class_name: 'User'

  validate :invites_limit_not_gained

  private

  def invites_limit_not_gained
    if referrer.referrals.count >= REFERRALS_LIMIT
      errors.add(:referrer_id, 'Gained limit of referrals')
      false
    end
  end
end

在注册过程中,您应该将referrer_id传递给模型