如何在邮件程序中设置全局变量,取决于参数?

时间:2015-10-06 12:37:18

标签: ruby-on-rails ruby

我的邮件是这样的:

class RenovationOrderMailer < ApplicationMailer

 default from: "example@gmail.com"

  def customer_confirmation(renovation_order)
    @renovation_order = renovation_order
    mail(to: "example123@gmail.com", subject: 'We confirm!')
  end

  def order_summary(renovation_order)
    @renovation_order = renovation_order
    mail(to: "example234@gmail.com", subject: 'You have new order!')
  end

  def custom_email(renovation_order)
    @renovation_order = renovation_order
    mail(to: "example345@gmail.com", subject: 'Info about order')
  end

  def custom_email_confirmation(renovation_order)
    @renovation_order = renovation_order
    mail(to: "example456@gmail.com", subject: 'You sended info')
  end

end

正如您在每个方法中看到的,我在方法视图中声明了我需要的@renovation_order变量。有没有一个解决方案来声明这个变量一次,并且可以在邮件程序的每个方法中访问它?

我知道这里有一些错误:https://stackoverflow.com/a/18709805/2502605,但是没有关于创建共享视图变量的任何内容,传递数据会执行mailer before_action和语法。

2 个答案:

答案 0 :(得分:0)

看看这个答案:How to add a before_filter in UserMailer which checks if it is OK to mail a user?

我不知道如何标记为重复。

答案 1 :(得分:0)

在行动之前会做魔术

before_action { @renovation_order = "example123@gmail.com"}    

请检查以获取更多文档http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-callbacks