【发布时间】:2017-06-10 00:09:13
【问题描述】:
尝试使用 Sidekiq 发送电子邮件时,我收到此错误
ActionView::MissingTemplate:缺少带有“mailer”的模板campaign_mailer/hugh_email。搜索:*“campaign_mailer”
在控制器中
CampaignMailer.hugh_email(email, user).deliver_later
在campaign_mailer.rb中
layout 'mailer'
def hugh_email(email, user)
mail(to: @user.email, subject: email.subject)
end
app/views/campaign_mailer/hugh_email.html.slim有html,我在layouts/mailer有模板
注意:我已经尝试了所有我能找到的东西,甚至是重新生成的邮件。当我使用deliver_now 发送时,它似乎可以与新邮件一起使用,但是一旦我尝试deliver_later,错误就会返回(即使回到尝试deliver_now 时也是如此)。
更新:
我的解决方案可能对很多人没有帮助,但我会在此处添加以防万一。
我现在将电子邮件保存在我的系统上,并使用CampaignMailer.hugh_email(email.subject, html).deliver_later 将 html 传递到邮件程序中。在campaign_mailer.rb 我跑了
mail(to: to_address, subject: email_subject) do |format|
format.text { render(text: "") }
format.html { html }
end
同样,不幸的是,这可能对大多数遇到此问题的人没有帮助。但我基本上通过指定 html 而不是使用邮件视图解决了这个问题。
【问题讨论】:
标签: ruby-on-rails email actionmailer sidekiq mailer