我通过跟踪和错误注意到
UserMailer.newsletter(@user, @posts).deliver unless @posts.blank?
将发送电子邮件,而不考虑@post的值,而
UserMailer.newsletter(@user, @posts).deliver! unless @posts.blank?
(使用传送!如果@post是空的,就不会正确地发送电子邮件吗?
为什么会这样呢?我知道送货!如果不能发送异常,则抛出异常,但不应该传递也要侦听条件吗?
发布于 2014-07-01 22:45:22
使用source_location
查找定义方法的位置:
UserMailer.newsletter(@user, @posts).method(:deliver).source_location
=> ["gems/mail-2.5.4/lib/mail/message.rb", 229]
这将指向邮件中的这些行,并给出了答案:
deliver!
绕过检查perform_deliveries和raise_delivery_errors.
https://stackoverflow.com/questions/17868957
复制相似问题