0

我有一个 Rails 3 应用程序向多个 (2) 收件人发送电子邮件。第一个收件人是必需的,但第二个不是必需的。如果第二个收件人为空,我会收到错误消息。如果为空,我如何绕过辅助电子邮件而不会出现错误?

  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
4

1 回答 1

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
于 2012-11-21T17:04:28.503 回答