我有一个Rails 3应用程序向多个(2)收件人发送电子邮件。第一个收件人是必需的,但第二个收件人不是必需的。如果第二个收件人为空,我会收到错误。如果为null,如何在不收到错误的情况下绕过辅助电子邮件?
def email_approvers(invoice)
@subject = 'Invoice Approval Request'
@body["invoice"] = invoice
@recipients = invoice.approver_email, invoice.alternate_approver_email
@from = "..."
@sent_on = Time.now
@headers = {}
end
答案 0 :(得分:0)
您应该看到http://edgeguides.rubyonrails.org/action_mailer_basics.html#complete-list-of-action-mailer-methods(2.3.4向多个收件人发送电子邮件)。您可以使用电子邮件创建一个数组(可能在Invoice类中,您可以创建一个返回有效电子邮件数组的方法)。
在邮件中:
default :from => "..."
def email_approvers(invoice)
@data = invoice
mail :to => @data.recipients, :subject => 'Invoice Approval Request'
end
在发票模型中:
def recipients
return alternate_approver_email.nil? ? [approver_email] : [approver_email, alternate_approver_email]
end
-
对于您的情况(如果没有值,它会将属性设置为 nil ,因此前面的代码将起作用):
def alternate_approver_email
self.alternate_approver_email = !self.alternate_approver_username.nil? ? self.alternate_approver_username + "@email.com" : nil
end