加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Mailer错误缺失的模板

发布时间:2020-12-16 19:38:37 所属栏目:百科 来源:网络整理
导读:你好, 我有ActionMailer的问题,当我尝试执行操作: rake send_email 我收到一个错误: rake aborted!ActionView::MissingTemplate: Missing template user_mailer/mailer with "mailer". Searched in: * "user_mailer" 这是我的 邮寄/ user_mailer.rb class
你好,

我有ActionMailer的问题,当我尝试执行操作:

rake send_email

我收到一个错误:

rake aborted!
ActionView::MissingTemplate: Missing template user_mailer/mailer with "mailer". Searched in:
  * "user_mailer"

这是我的

邮寄/ user_mailer.rb

class UserMailer < ActionMailer::Base
  default from: "from@example.com"

  def mailer(user)
    @user = user
    mail(to: @user.email,subject: 'Test')
  end

end

视图/ user_mailer文件/ mailer.html.erb

<!DOCTYPE html>
<html>
  <head>
    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
  </head>
  <body>
    <p>
      Sample mail.
    </p>
  </body>
</html>

视图/ user_mailer文件/ mailer.text.erb

Sample mail.

LIB /任务/ emails_task.rake

desc 'send email'
task send_email: :environment do
  UserMailer.mailer(User.last).deliver!
end

配置/环境/ development.rb

# I recommend using this line to show error
  config.action_mailer.raise_delivery_errors = true

  # ActionMailer Config
  config.action_mailer.delivery_method = :letter_opener

# config.action_mailer.default_url_options = { :host => 'localhost:3000' }
# config.action_mailer.delivery_method = :smtp
# SMTP settings for gmail
config.action_mailer.smtp_settings = {
 :address              => "smtp.gmail.com",:port                 => 587,:user_name            => ENV['gmail_username'],:password             => ENV['gmail_password'],:authentication       => "plain",:enable_starttls_auto => true
}

# Send email in development mode?
config.action_mailer.perform_deliveries = true

我在stackoverflow上搜索了解决方案,我尝试了许多类似问题的答案,但不幸的是他们没有为我工作.

我找到解决方案,当我添加body的邮件方法像:

def mailer(user)
  @user = user
  mail(to: @user.email,subject: 'Test',body: 'something')
end

然后它的工作,但我想要一个单独的文件,并使其更复杂的用户名和其他的东西.

如果有人有一个想法如何解决这个问题,那么我会很感激:)

解决方法

尝试添加布局
class UserMailer < ActionMailer::Base
  default from: "from@example.com"

  layout "mailer"

  def mailer(user)
   @user = user
   mail(to: @user.email,subject: 'Test')
 end

end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读