我见过一些创建邀请系统的很好的资源,在这些系统中,应用程序发送电子邮件邀请,其中包含到被邀请用户的电子邮件的链接,比如devise_invitable。
我想弄明白的是如何生成一堆邀请码,这样我就可以把它们发给特定的人,然后他们就可以用邀请码注册了。我有一些我会做的想法,但我想知道是否有人以前遇到过这种情况,并有一些经过试验和真实的方法。
顺便说一下,我正在使用devise进行身份验证。
任何帮助都是非常感谢的。
发布于 2012-02-05 06:37:46
您始终可以创建包含随机生成的可兑换代码的InviteCode模型,这些代码可以按需发布,并在以后的某个时间点进行验证。
例如:
class User < ActiveRecord::Base
has_one :invite_code_used,
:class_name => 'InviteCode',
:foreign_key => 'user_redeemer_id'
has_many :invite_codes,
:foreign_key => 'user_creator_id'
end
class InviteCode < ActiveRecord::Base
belongs_to :user_creator,
:class_name => 'User',
:foreign_key => 'user_creator_id'
belongs_to :user_redeemer,
:class_name => 'User',
:foreign_key => 'user_redeemer_id'
end您将创建一个随机生成的字符串作为invite代码,大概是在before_validation之类的地方,以确保在保存之前填充它。当代码被赎回时,将代码链接到创建的用户,这样您就可以看到是谁实际认领了它。
为用户创建一个invite代码就像下面这样简单:
@invite_code = @user.invite_codes.create(:email => 'someone@example.com')您可以在创建InviteCode时添加一些验证,以确保给定用户创建的内容不会超过他们应该创建的内容,以及您可能需要的任何其他业务逻辑。
https://stackoverflow.com/questions/9144931
复制相似问题