2015-01-23 5 views
0

Я использую разработать и разработать invitable с Rails 4.Как ограничить количество пользователей на учетной записи Rails 4?

Я знаю, что я могу ограничить количество приглашенных пользователей в devise.rb путем изменения config.invitation_limit. Тем не менее, я хочу, чтобы все пользователи могли приглашать новых пользователей, поэтому ограничение на приглашение устанавливает лимит только для определенного пользователя, а не для всей учетной записи.

Я хотел бы ограничить количество пользователей на счет максимальной 15. Как я мог бы сделать это и отображать сообщение для пользователей, например:

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

ответ

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 модели

Смежные вопросы