我想为用户添加邀请码要求,以便在我的应用程序中注册。我调查了devise_invitable宝石的设计,这看起来很有希望。但是,不应该像人们一样继续邀请人们加入应用程序。
要解决这个问题,我需要在我的应用程序中植入用户级别。我在github上找到了this project,现在我得到了以下想法:一旦用户注册(由另一个现有用户邀请),它就从级别1开始,并且必须完成任务才能存档经验点。他按照他/她的方式上升到下一个级别,他可以邀请1个新成员,然后在下一个级别他可以邀请1个其他级别,在下一个级别,用户可以邀请2个成员,依此类推,等等。
我对Ruby很陌生,我想知道如何包含它并知道是否可以在我的用户控制器中插入。
感谢您阅读并度过美好的一天。
答案 0 :(得分:2)
这应该是一个相当简单的过程,因为用户拥有的邀请数只是存储在数据库中的整数。它可能很简单:
def level_up(level)
self.invitation_limit += level
self.save
end
虽然这是一个非常简单的实现,但您只需传入用户级别,将其添加到当前的邀请数量中,然后保存用户。这一切都取决于你想要获得多少花哨,但它实际上归结为基本数学,并将其保存到数据库中。
答案 1 :(得分:0)
我不确定自2012年提出问题以来这是否有所改变,但是devise_invitable有一个invitation_limit
参数:
invitation_limit:用户可以发送的邀请数量。默认值nil表示用户可以根据需要发送任意数量的邀请,对任何用户都没有限制,不使用invitation_limit列。设置为0表示他们无法发送邀请。设置n> 0表示他们可以发送n个邀请。您可以更改某些用户的invitation_limit列,以便他们可以发送更多或更少的邀请,即使全局invitation_limit = 0。
您可以通过查看来源here来了解如何使用此参数。一个重要的部分:
# Return true if this user has invitations left to send
def has_invitations_left?
if self.class.invitation_limit.present?
if invitation_limit
return invitation_limit > 0
else
return self.class.invitation_limit > 0
end
else
return true
end
end