我刚接触ruby并尝试在用户注册时向我的服务器添加电子邮件验证。我在https://coderwall.com/p/u56rra/ruby-on-rails-user-signup-email-confirmation-tutorial处遵循2017年Rails 4指南。我收到此错误,“ NoMethodError(为UserMailer:Class调用了私有方法`registration_confirmation'): “
这是我想添加到服务器上以执行电子邮件验证的新内容,最近我在向新用户注册时向他们发送了一封欢迎邮件,并且我正在努力添加验证电子邮件,但这不是工作,并不断抛出一个错误。我想我遵循的指南很旧,所以我对代码进行了一些更改,使其更像发送了欢迎电子邮件。
这是欢迎使用的用户邮件代码:
class UserMailer < ActionMailer::Base
default from: 'hello@thecitizenshub.com'
def welcome_email
@user = params[:user]
@url = 'https://thecitizenshub.com/login'
mail(to: @user.email, subject: 'Welcome')
end
end
def registration_confirmation
@user = params[:user]
mail(to: @user.email, subject: 'Registration Confirmation')
end
这是用于注册确认的用户邮件代码:
def registration_confirmation
@user = params[:user]
mail(to: @user.email, subject: 'Registration Confirmation')
end
用户控制器代码:
def create
@user = User.new(user_params)
if @user.save
# Tell the UserMailer to send a welcome email after save
UserMailer.with(user: @user).welcome_email.deliver_later
UserMailer.registration_confirmation(@user).deliver
render json: @user, status: :created
else
render json: @user.errors, status: :unprocessable_entity
end
end
我希望当有人注册时,他们应该收到验证电子邮件,但是此错误不断出现,因此我不断收到There was an error processing your request..
,并在控制台中提供了NoMethodError (private method
registration_confirmation',称为UserMailer :类):
`在测试注册时,我正在使用Rails Rails 5.2.2
如果有帮助