gpt4 book ai didi

ruby-on-rails - 使用 ActionMailer 发送电子邮件注册确认

转载 作者:太空宇宙 更新时间:2023-11-03 16:02:30 26 4
gpt4 key购买 nike

目前,当用户注册时,我让 ActionMailer 发送一封电子邮件,并且我为用户生成一个随机的 :sign_in_token。

用户如何才能点击发送到他的电子邮件的链接并将用户 :registration_complete bool 值更新为 TRUE?

目前,我可以发送链接并生成随机 token ,但我不知道如何通过电子邮件更新 bool 值。

模型

class User < ActiveRecord::Base
attr_accessible :name, :email, :password, :password_confirmation, :sign_in_token,
:registration_complete

###This generates my sign_in_token
def generate_sign_in_token
self.sign_in_token = Digest::SHA1.hexdigest([Time.now, rand].join)
end

end

Controller

def create
@user = RegularUser.new(params[:regular_user])
if @user.save

###Sends the User an email with sign_in_token
UserMailer.registration_confirmation(@user, login_url+"/#{@user.sign_in_token}").deliver

flash[:success] = "Please Check Your Email to Verify your Registration!"
redirect_to (verifyemail_path)
else
render 'new'
end
end

USER_MAILER

def registration_confirmation(user, login_url)
@login_url = login_url
@user = user
mail(:to => "#{user.name} <#{user.email}>", :subject => "Welcome to APP")
end

观点

###Redirects User to Login Page, But how do i connect it to my activate method?
<%= link_to "Complete Registration", @login_url %>

路线

match '/login/:sign_in_token', :to => 'sessions#new'

最佳答案

当他们点击一个链接时,它会使用 GET 请求通过 set_complete 操作将他们带到一个 Controller ,该操作会设置 bool 值。

类似于:

def set_complete
user = User.find(params[:user])
user.update_attribute(registration_complete => true)
redirect_to login_path # or whatever your login url is...

end

对于 Controller 操作和类似这样的链接:

<a href="example.com/registrations/set_complete?user=1" />

这是路由文件中可能包含的内容的示例:

get "/users/set_complete", :to => "users#set_complete"

您可能需要使用 erb 将用户 ID 设置为您想要的任何值,并进行一些其他特定于应用程序的自定义,但这是一般的想法。

希望这对您有所帮助!

关于ruby-on-rails - 使用 ActionMailer 发送电子邮件注册确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21506278/

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