ruby 带导轨的ActionMailer:缺少带有“mailer”的模板user_mailer/welcome

bogh5gae  于 2022-12-18  发布在  Ruby
关注(0)|答案(1)|浏览(101)

运行UserMailer.welcome.deliver_now时,控制台中出现此错误

irb(main):002:0> UserMailer.welcome.deliver_now
UserMailer#welcome: processed outbound mail in 0.7ms
/Users/jlandis/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/actionmailer-7.0.4/lib/action_mailer/base.rb:1001:in `each_template': Missing template user_mailer/welcome with "mailer". (ActionView::MissingTemplate)

Searched in:
  * "user_mailer"

我不知道丢失模板是什么意思。
在应用程序/邮件程序中,我有application_mailer.rb

class ApplicationMailer < ActionMailer::Base
  default from: "from@example.com"
  layout "mailer"
end

在app/用户邮箱.rb中:

class UserMailer < ApplicationMailer

  def welcome
    @greeting = "Hi"
    mail to: "to@example.org"
  end
  
end


我的视图文件路径如下所示(不确定这是否与问题相关):x一米二米一x一米三米一x一米四米一
这是我第一次使用Ruby,我使用了以下两个指南:

q35jwt9p

q35jwt9p1#

app/views/layouts/mailer.html.erbapp/views/layouts/mailer.text.erb中的模板是常规布局模板,如app/views/layouts/application.html.erb中的常规视图。这意味着它们应该只提供外部的常规布局/结构。然后每个视图都有更具体的模板。因为主页、项目列表或带有表单的页面是非常不同的。
邮件视图也是一样。它们为所有的邮件提供了一个外部结构,比如一个带有徽标的页眉和一个带有公司详细信息的页脚。但是每个邮件视图也需要一个专门的视图,因为用户注册后的邮件不同于关于销售的邮件。
在您的示例中,缺少以下视图:

  • app/views/user_mailer/welcome_email.html.erb
  • app/views/user_mailer/welcome_email.text.erb

它可能看起来像这样:

# app/views/user_mailer/welcome_email.text.erb
<h1><%= @greeting %>,</h1>
<p>Example Email Body</p>

# app/views/user_mailer/welcome_email.text.erb
<%= @greeting %>,

Example Email Body

相关问题