我想避免重复设置多个邮件预览。什么是最好的方法来清理这个吗?
class MyMailerPreview < ActionMailer::Preview
def email1
setup
mailer.email1
end
def email2
setup
mailer.email2
end
def email3
setup
mailer.email3
end
end
我想避免重复设置多个邮件预览。什么是最好的方法来清理这个吗?
class MyMailerPreview < ActionMailer::Preview
def email1
setup
mailer.email1
end
def email2
setup
mailer.email2
end
def email3
setup
mailer.email3
end
end
4条答案
按热度按时间qkf9rpyu1#
以下是我发现的两种可能的解决方案:
有一个叫做
preview_interceptors
的东西在生成邮件预览时使用,你可以像这样添加你自己的:config/environments/development.rb
test/mailers/previews/my_setup.rb
test/mailers/previews/user_mailer_preview.rb
message参数是
ActionMailer::Parameterized::MessageDelivery
的一个示例,我不确定你能用它做什么,但你可以在电子邮件本身设置一些属性。我找不到太多关于预览拦截器的文档,但这里有一个链接,介绍如何在Rails中使用它们。
我试图在类中包含Rails
before_action
,但它不会在预览器中挂钩方法,所以我发现的第二个选择是像这样构建自己的before_action
:sz81bmfz2#
使用
initialize
方法。只需覆盖父
initialize
方法,调用super
,然后运行设置:您可以在这里查看
ActionMailer::Preview.new
方法作为参考。dhxwm5r43#
根据我对你所问问题的理解,也许你可以把它添加到一个单独的方法中,该方法将mailer方法作为参数
这样行吗
xxb16uws4#
可以扩展Rails::MailersController
或
prepend
来覆盖