我不确定我是否应该在控制器或模型中执行此事务,因为我必须计算和更改其他用户的列值。
在我的理解中,模型中的陈述只是为了改变自身的价值(这里是用户自我)
现有用户(ID:1367)可以将此网址作为邀请发送给他的朋友。
http://example.com/users/sign_up?invitation=1367
然后用户表有一个隐藏的列名为invitation
。
这是我想要的程序。
他的朋友输入信息注册。
他点击提交按钮,然后隐藏字段“邀请”也将发送到表单。
1367
将在记录的“邀请”列中设置。他会收到确认邮件,当他点击链接时,我想添加这个交易,并且只为他的账户执行一次。
当然,当现有用户尝试重新激活时,不应执行此操作。
仅用于新用户的第一次确认。
代码
@user = User.find_by_invitation(current_user.invitation)
@user.friends = @user.friends + 1
@user.save
我已经有了注册控制器,可以帮助向 Devise 添加额外的事务。
现在我想知道如何在我的应用程序中实现这个过程。
应该是这样的吗?
注册控制器.rb
def after_????????
if @user = User.find_by_invitation(current_user.invitation)
@user.friends = @user.friends + 1
@user.save
end
end