我正在使用设计并使用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
答案 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传递给模型