2014-03-04 150 views
1

我想發送電子郵件至@user.email@business.manager.email如何向多個收件人發送電子郵件

業務並不總是有一個經理。

是否有一個簡短的方法來創建這些2(可能是1)電子郵件地址的收件人數組?

recipients = [@user.email, @business.manager.email] 
mail(from: "[email protected]", to: recipients, subject: "Spam") 

回答

3

您可以用電子郵件創建一個數組,然後再按第二個。

recipients = [@user.email] 
recipients << @business.manager.email if @business.manager 

這不會推動經理的電子郵件,除非有經理。

0

您還可以: recipients = [@user.email, @business.manager.email].compact.reject(&:blank?)

+0

這實際上將基於OP的用例而失敗。由於「經理」可能並不總是存在於「業務」中,如果嘗試爲沒有經理的企業發送電子郵件,試圖執行「@ business.manager.email」將導致「NoMethodError:未定義方法」電子郵件「爲零:NilClass'錯誤。 – jeffdill2

0

如果你想數組聲明保持一條線,你可以這樣做:

[@user.email, @business.manager.try(:email)].compact 

try的電子郵件將返回nil如果一個企業沒有按」沒有經理。並且compact從數組中刪除nil值。

相關問題