2014-03-04 153 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值。

相关问题