В настоящее время у меня есть ActionMailer, отправляющий электронное письмо, когда пользователь регистрируется, и я генерирую случайное: sign_in_token с пользователем.Подтверждение электронной почты Подтверждение с помощью ActionMailer
Как пользователь может щелкнуть ссылку, отправленную на его электронную почту, и обновить пользователей: registration_complete boolean значение TRUE?
В настоящее время я могу отправить ссылку и создать случайный токен, но я не знаю, как обновить логическое значение по электронной почте.
МОДЕЛИ
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'
Если бы это ответили на ваш вопрос, считаете ли вы его принятым в качестве ответа? –
и как будут выглядеть маршруты? –
Обновленный ответ выше с помощью маршрутов –