gpt4 book ai didi

ruby-on-rails - 交付与交付之间的差异!方法(Rails 4)

转载 作者:行者123 更新时间:2023-12-04 02:50:33 25 4
gpt4 key购买 nike

我通过跟踪和错误注意到

UserMailer.newsletter(@user, @posts).deliver unless @posts.blank?

无论@post 的值如何,都会发送电子邮件,而

UserMailer.newsletter(@user, @posts).deliver! unless @posts.blank?

(使用 deliver! vs deliver)如果@posts 为空,将不会正确发送电子邮件?

这是为什么?我知道送!如果无法发送则抛出异常,但不应该 deliver 也监听条件吗?

最佳答案

使用source_location查找定义方法的位置:

UserMailer.newsletter(@user, @posts).method(:deliver).source_location
=> ["gems/mail-2.5.4/lib/mail/message.rb", 229]

这会将您指向 these lines in the mail gem并给你答案:

deliver! 绕过检查 perform_deliveries 和 raise_delivery_errors。

关于ruby-on-rails - 交付与交付之间的差异!方法(Rails 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17868957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com