UserMailer Preview发布Ruby on Rails

时间:2016-09-28 21:20:37

标签: ruby-on-rails ruby actionmailer mailer

我正在阅读Ruby on Rails教程,无法让我的UserMailer预览工作。

我得到的错误是当我去服务器时,它说Mailer preview 'user_mailer/account_activation' not found

我正在逐步遵循代码,但它无法正常工作。这就是我所拥有的。

应用程序/邮寄者/ user_mailer.rb     class UserMailer< ApplicationMailer

  def account_activation(user)
    @user = user
    mail to: user.email, subject: "Account activation"
  end

测试/邮寄者/预览/ user_mailer_previews

class UserMailerPreview < ActionMailer::Preview

  # Preview this email at
  # http://localhost:3000/rails/mailers/user_mailer/account_activation
  def account_activation
    user = User.first
    user.activation_token = User.new_token
    UserMailer.account_activation(user)
  end

配置/环境/ development.rb

  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :test
  host = 'localhost:3000'
  config.action_mailer.default_url_options = { host: host, protocol: 'https' }

我已阅读并重新阅读网站https://www.railstutorial.org/book/account_activation上的代码并尝试更改内容但没有运气

提前谢谢!

编辑:我实际上已经有了一个视图,抱歉应该早点包含它。

应用程序/视图/ user_mailer文件/ account_activation.html.erb

<h1>Sample App</h1>

<p>Hi <%= @user.name %>,</p>

<p>
  Welcome to the Sample App! Click on the link below to activate your account:
</p>

<%= link_to "Activate", edit_account_activation_url(@user.activation_token,
                                                    email: @user.email) %>

2 个答案:

答案 0 :(得分:1)

你想去哪个网址?我有同样的问题,那是因为我要离开&#34; rails&#34;网址的一部分(因为我认为该部分特定于教程作者的特定开发环境(它不是))。

尝试转到http://localhost:3000/rails/mailers,其中应列出预览的链接。

答案 1 :(得分:0)

您还需要在app/views/user_mailer下为邮件程序创建至少一个view template

最简单的说,这可以是一个名为account_activation.text.erb的文件,其中包含一些静态文本,这些文本将成为电子邮件的正文。