我们在引擎内部设置SomeMailer
。生成邮件程序后,Rails会创建一个SomeMailerPreview
类,其注释为:
# Preview this email at http://localhost:3000/rails/mailers/some_mailer/test
但是,一旦我在引擎中运行Dummy
应用,该网址就无法解析。
引擎安装在根路径'/'上:
mount MyEngine::Engine => "/"
我尝试过将url与引擎名称的不同组合,但不解决。
是否可以为引擎内的邮件程序使用预览功能?
答案 0 :(得分:5)
有点晚了,但我想我还是会回答的。您可以通过让铁路知道预览路径的位置来识别您的预览。默认情况下,它会查找
"#{Rails.root}/test/mailers"
所以你的邮件预览必须在那里才能正确解析网址。但您可以通过在Dummy
的development.rb文件中设置路径来更改此设置config.action_mailer.preview_path = "#{YourEngineRoot}/test/mailers"
将预览放在给定的路径中。您的网址应在此之后正确解析。
答案 1 :(得分:1)
我有同样的问题。幸运的是,在我的情况下,我的引擎直接依赖于主应用程序。在主应用程序中,即使邮件是在我的引擎中,我也有我的邮件预览。
class ApplicantMailerPreview < ActionMailer::Preview
# Accessible from http://localhost:3000/rails/mailers/applicant_mailer/applicant_email
def applicant_email
recipient = MyEngine::ApplicantEmail.all.first
applicant = recipient.applicant
job = applicant.job
MyEngine::ApplicantMailer.applicant_email(job.id, applicant.id, recipient.id)
end
end