0

複数の (2) 受信者に電子メールを送信する Rails 3 アプリがあります。最初の受信者は必須ですが、2 番目の受信者は必須ではありません。2 番目の受信者が null の場合、エラーが発生します。null の場合、エラーを発生させずに 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 に答える