发送邮件,使用'邮件程序'获取ActionView :: MissingTemplate <path>

时间:2016-10-25 14:10:26

标签: ruby-on-rails email actionmailer sidekiq mailer

尝试使用Sidekiq发送电子邮件时,我收到此错误

  

ActionView :: MissingTemplate:使用“邮件程序”缺少模板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而不是使用邮件程序视图来解决问题。

1 个答案:

答案 0 :(得分:0)

hugh_email.html.slim 必须在

/app/views/campaign_mailer/hugh_email.html.slim

mailer.html.slim

/app/views/layouts/mailer.html.slim

mailer.text.erb

/app/views/layouts/mailer.text.erb