and*_*ndy 5 actionmailer rails-engines ruby-on-rails-4
我们SomeMailer在引擎内部设置了.生成邮件程序后,Rails会创建一个SomeMailerPreview类,并带有注释:
# Preview this email at http://localhost:3000/rails/mailers/some_mailer/test
Run Code Online (Sandbox Code Playgroud)
但是,一旦我Dummy在我的引擎中运行应用程序,该URL就无法解析.
引擎安装在根路径'/'上:
mount MyEngine::Engine => "/"
Run Code Online (Sandbox Code Playgroud)
我已尝试过将url与引擎名称的不同组合,但无法解决.
是否可以在引擎内使用预览功能?
小智 5
这有点晚了,但我想我还是会回答的.您可以通过让铁路知道预览路径的位置来识别您的预览.默认情况下,它会查找
"#{Rails.root}/test/mailers"
所以你的邮件预览必须在那里为网址正确解决.但您可以通过在Dummy的development.rb文件中自己设置路径来更改此设置
config.action_mailer.preview_path = "#{YourEngineRoot}/test/mailers"
Run Code Online (Sandbox Code Playgroud)
并将预览放在给定的路径中.您的网址应在此之后正确解析.
我有同样的问题。幸运的是,就我而言,我的引擎直接依赖于主应用程序。在主应用程序中,即使邮件程序位于我的引擎内,我也可以预览邮件程序。
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
687 次 |
| 最近记录: |