1

我已经看到了一些用于创建邀请系统的优秀资源,其中应用程序会发送一封电子邮件邀请,其中包含指向受邀用户电子邮件的链接,例如 devise_invitable。

我想弄清楚的是如何生成一堆邀请码,以便我可以将它们分发给特定的人,然后他们可以使用该邀请码进行注册。我对我会做什么有一些想法,但我想知道是否有人以前遇到过这种情况并且有一些经过验证的真实方法。

顺便说一句,我正在使用设计进行身份验证。

任何帮助深表感谢。

4

1 回答 1

1

您始终可以创建一个包含随机生成的可兑换代码的 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

您将创建一个随机生成的字符串用作邀请码,大概是before_validation为了确保在保存之前填充它。兑换代码后,将代码链接到创建的用户,这样您就可以看到谁实际申领了它。

为用户创建邀请码就像这样简单:

@invite_code = @user.invite_codes.create(:email => 'someone@example.com')

您可以在创建 InviteCode 时添加一些验证,以确保给定用户没有创建超出他们应有的内容以及您可能需要的任何其他业务逻辑。

于 2012-02-04T22:37:46.057 回答