Beta邀请代码Rails

时间:2012-02-04 21:57:37

标签: ruby-on-rails authentication devise beta invite

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

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

我正在使用设计进行身份验证。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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时添加一些验证,以确保给定用户创建的内容超出了他们应该创建的内容以及您可能需要的任何其他业务逻辑。