简体   繁体   English

Action Mailer around_action 回调

[英]Action Mailer around_action call back

I have this,我有这个,

class SiteMailer < ApplicationMailer
around_action :set_sales

 def notify_customer(site)
   @site = site
 end

private

 def set_sales
   @sales ||= @site.customer.sales
 end
end

Is it possible to set the values for @sales as shown above?是否可以如上所示设置@sales的值? I tried but couldn't succeed.我试过了,但没有成功。 Can anyone help me or make this clear.任何人都可以帮助我或澄清这一点。 Searched over previous questions on this topic and found people using around_action for exception handling only.搜索了有关此主题的先前问题,发现有人仅使用around_action进行异常处理。 Can't we use around_action like this?我们around_action像这样使用around_action吗?

try on mailer folder:试试邮件文件夹:

yourfilename.html.erb你的文件名.html.erb

<p> lorem ipsum <%= @site %>!</p>
<p> lorem ipsum <%= @sales %>!</p>

On model site.rb在模型站点.rb

class Site < ApplicationRecord
.............
protected
  after_commit :set_sales, on: [:update #your action]
  def set_sales
    site = self.site
    sales = site.customer.sales
    SiteMailer.notify_customer(site, sales).deliver_now
  end
end

.............................. ……………………………………………………………………………………………………………………………………………………………………………………

class SiteMailer < ApplicationMailer
  def notify_customer(site, sales)
    @site = site
    @sales = sales
  end
end

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM