运行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,我使用了以下两个指南:
1条答案
按热度按时间q35jwt9p1#
app/views/layouts/mailer.html.erb
和app/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
它可能看起来像这样: