如何修复“((为UserMailer:Class调用的私有方法`registration_confirmation”)” rails服务器

时间:2019-01-24 23:11:14

标签: ruby-on-rails webserver ruby-on-rails-5 actionmailer email-verification

我刚接触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  如果有帮助

0 个答案:

没有答案