gpt4 book ai didi

ruby-on-rails - Rails 应用程序如何邀请您的 friend 自定义网址?

转载 作者:行者123 更新时间:2023-12-02 01:05:50 25 4
gpt4 key购买 nike

我目前正在使用 devise_invitable 提交邀请新用户的电子邮件。您发送的每封电子邮件都会创建唯一的 token ,如果他们接受邀请,这两个用户就会连接起来。我想做的是让每个 current_user 都有一个保持不变的唯一邀请 token ,这样他们就可以发推特、发电子邮件等,任何人都可以通过单击链接 (www.mydomain.com/signup) 接受邀请/'unique_current_user_token') 将被带到注册表单,该表单会将 token 存储在他们的“帐户”中,这样​​我就可以看到谁邀请了他们。是否使

最佳答案

您可能希望通过覆盖设计的注册页面并允许我们的新参数到模型(attr_accessible rails 3 或 params.require(:foo).permit)来手动执行此操作

首先,您应该删除 devise invitable,因为您不会将它用于我搜索过的这种方法,但没有找到使用 devise_invitable 进行此操作的干净方法。

第 2 步:向名为 invitation_token 的用户表添加属性(这与 devise invitable 不同,因为这对每个用户都是唯一的,并且将用于发送邀请,而不是在收到邀请时使用)

并添加到用户模型(根据rails casts)

before_create :generate_invitation_token
def generate_invitation_token
self.invitation_token = Digest::SHA1.hexdigest([Time.now, rand].join)
end

这样每个用户都会有一个唯一的invitation_token

第 3 步: 现在您可以使用/signup/:invitation_token 这样的 url 来邀请用户,每个用户都是唯一的(您应该将其添加到路由并将其映射到 Devise::RegistrationsController #创建)

第 4 步:接受用户并识别邀请他们注册的人

现在我们必须覆盖 Devise::RegistrationsController#create and newview

在新的你应该找到邀请的用户。并添加一个应引用该用户的虚拟属性,即:inviter.id

并在注册表单中添加一个hidden_​​field来设置这样的属性

现在在创建过程中检查该属性的可用性(如果存在)您可以做任何您想做的事情(在您的案例中添加用户之间的关系)。

我想就是这样了如果您需要任何其他评论,我将编辑我的答案以帮助您更多

关于ruby-on-rails - Rails 应用程序如何邀请您的 friend 自定义网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22624992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com