ArgumentError:参数数量错误

时间:2017-02-07 13:41:00

标签: ruby-on-rails

我在尝试发送激活电子邮件时收到错误的参数错误。

  

Rails.root:/ home / ubuntu / workspace应用程序跟踪|框架跟踪   |完整跟踪

     

app / mailers / user_mailer.rb:8:在account_activation' app/models/user.rb:66:in send_activation_email'   app / controllers / users_controller.rb:25:在`create'

user_mailer.rb:

def account_activation
  @user = user
  mail to: user.email, subject: "Account activation"
end

users_controller.rb:

def create
  @user = User.new(user_params)
  if @user.save
    @user.send_activation_email
    redirect_to root_url
  else
    render 'new'
  end
end

模型/ user.rb:

# Sends activation email.
def send_activation_email
  UserMailer.account_activation(self).deliver_now
end

根据我的理解,我没有向该方法传递错误数量的参数。

2 个答案:

答案 0 :(得分:0)

我相信你错过了:

def account_activation(user)

您正在调用self,因此该方法需要一个参数。

答案 1 :(得分:0)

您正在发送self作为参数

UserMailer.account_activation(self)

方法account_activation不接受任何参数

将您的方法更改为account_activation(user),因为您在其中使用user.email