首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试版邀请代码Rails

测试版邀请代码Rails
EN

Stack Overflow用户
提问于 2012-02-05 05:57:37
回答 1查看 1.4K关注 0票数 1

我见过一些创建邀请系统的很好的资源,在这些系统中,应用程序发送电子邮件邀请,其中包含到被邀请用户的电子邮件的链接,比如devise_invitable。

我想弄明白的是如何生成一堆邀请码,这样我就可以把它们发给特定的人,然后他们就可以用邀请码注册了。我有一些我会做的想法,但我想知道是否有人以前遇到过这种情况,并有一些经过试验和真实的方法。

顺便说一下,我正在使用devise进行身份验证。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2012-02-05 06:37:46

您始终可以创建包含随机生成的可兑换代码的InviteCode模型,这些代码可以按需发布,并在以后的某个时间点进行验证。

例如:

代码语言:javascript
复制
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代码就像下面这样简单:

代码语言:javascript
复制
@invite_code = @user.invite_codes.create(:email => 'someone@example.com')

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9144931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档