【发布时间】:2014-07-10 22:59:43
【问题描述】:
在常见的 Ruby on Rails 3/4 应用程序中,有两个选项可以在创建模型后传递邮件:
1) 直接从控制器的创建操作发送邮件
#listings_controller.rb
def create
@listing.create(params[:listing])
if @listing.save
ListingMailer.new_listing_notice(@listing).deliver
format.html {redirect_to @listing}
...
end
end
或2)通过模型回调发送邮件
#listing.rb
class Listing
after_create :notify
...
def notify
ListingMailer.new_listing_notice(self).deliver
end
end
目前是否就哪种方式更好达成共识?从控制器发送可以提供更多控制权,但是如果始终发送邮件,是否有任何理由不使用回调?这主要是风格问题,还是有其他重要问题?
【问题讨论】:
-
发送电子邮件是一个上下文问题。所以请不在模型中。检查这种方法:github.com/krisleech/wisper
-
模型中电子邮件的荒谬示例:您导入带有用户的 csv,会向他们发送电子邮件以感谢他们的注册?上下文...
标签: ruby-on-rails email