我的邮件是这样的:
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和语法。
答案 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