我试图弄清楚我在 ActionMailer 上做错了什么。我需要能够将多个参数传递给邮件程序,但继续收到错误“参数数量错误(1 对 2)”。
我的代码是:士兵控制器
def create
@soldier = Soldier.new(params[:soldier])
@battalion = Battalion.find(params[:battalion_id])
@company = Company.find(params[:company_id])
@frg = @company.users.find_by_position('FRG Leader')
respond_to do |format|
if @soldier.save
flash[:notice] = 'Soldier was successfully created.'
format.html { redirect_to battalion_company_soldier_path(@battalion, @company, @soldier)}
format.xml { render :xml => @soldier, :status => :created, :location => @soldier }
else
format.html { render :action => "new" }
format.xml { render :xml => @soldier.errors, :status => :unprocessable_entity }
end
end
end
士兵邮件程序.rb:
class SoldierMailer < ActionMailer::Base
def welcome_email(soldier, primary)
recipients soldier.primary.email
from "laurenrothlisberger@gmail.com"
subject "Welcome to the Unit"
sent_on Time.now
body
end
士兵观察者.rb:
def after_create(soldier, primary)
SoldierMailer.deliver_welcome_email(soldier, primary)
end
基本上,我需要将同一封电子邮件发送给几个不同的收件人,这些收件人的电子邮件地址都在与 Soldier 模型相关联的模型中。当方法中只有一个参数时,我可以毫无问题地发送电子邮件。如果我添加多个,则会引发该错误。
我将不胜感激任何帮助或指导。
谢谢。