neo*_*eon 3 ruby-on-rails actionmailer ruby-on-rails-4
我通过跟踪和错误注意到
UserMailer.newsletter(@user, @posts).deliver unless @posts.blank?
Run Code Online (Sandbox Code Playgroud)
无论 @post 的值如何,都会发送电子邮件,而
UserMailer.newsletter(@user, @posts).deliver! unless @posts.blank?
Run Code Online (Sandbox Code Playgroud)
如果@posts 为空,(使用deliver! 与deliver)将不会正确发送电子邮件?
为什么是这样?我知道送!如果无法发送,则会抛出异常,但交付不应该也监听条件吗?
用于source_location查找定义方法的位置:
UserMailer.newsletter(@user, @posts).method(:deliver).source_location
=> ["gems/mail-2.5.4/lib/mail/message.rb", 229]
Run Code Online (Sandbox Code Playgroud)
这会将您指向邮件 gem 中的这些行,并为您提供答案:
deliver!绕过检查 Perform_delivery 和 raise_delivery_errors。
| 归档时间: |
|
| 查看次数: |
2328 次 |
| 最近记录: |