【问题标题】:Beta Invite Codes RailsBeta 邀请代码 Rails
【发布时间】:2012-02-04 21:57:37
【问题描述】:

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

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

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

非常感谢任何帮助。

【问题讨论】:

  • 这个解决方案stackoverflow.com/a/3705462/816291怎么样?此外,您可以使用字段电子邮件(如果您想通过邮件发送)和代码创建简单的模型邀请。代码将在新邀请的创建操作中随机生成..? :)

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


【解决方案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 时添加一些验证,以确保给定用户没有创建超出其应有的内容以及您可能需要的任何其他业务逻辑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-18
    • 2012-09-12
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多