繁体   English   中英

ArgumentError:参数数量错误

[英]ArgumentError: wrong number of arguments

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

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

app / mailers / user_mailer.rb:8:in account_activation' app/models/user.rb:66:in send_activation_email'app / controllers / users_controller.rb:25:in"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

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

我相信你错过了:

def account_activation(user)

你正在调用self ,所以该方法需要一个参数。

你发送self作为一个论点

UserMailer.account_activation(self)

方法account_activation不接受任何参数

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM