邮件预览中的灯具

时间:2016-09-15 15:36:30

标签: ruby-on-rails ruby-on-rails-5

拥有以下邮件程序预览代码:

class RegistrationMailerPreview < ActionMailer::Preview

  # Preview this email at http://localhost:3000/rails/mailers/registration_mailer/welcome
  def welcome
    RegistrationMailer.welcome users(:one)
  end

end

(完整档案)。

无法访问我的灯具(users(:one)),返回500错误状态并打印出以下错误:

NoMethodError: undefined method `users' for #RegistrationMailerPreview

我们可以从邮件预览器获取灯具条目吗?

如果是,我想知道如何做到这一点 我已经看到应该可以here,但我不能在此文件中test_helper(我不知道为什么)并且我不理解它们之间的区别ActionMailer::TestCaseActionMailer::Preview

如果不是,有没有办法预览邮件而不作为参数User.first发送,因为我可以在数据库中没有数据填充的机器上进行测试。

1 个答案:

答案 0 :(得分:-1)

我不知道默认的夹具框架,但是我可以说使用FactoryBot作为我的夹具我只能通过在FactoryBot之前添加构建/创建方法来在我的邮件预览中使用它们。我不需要require文件顶部的任何内容。即:

class RegistrationMailerPreview < ActionMailer::Preview
  def welcome
    user = FactoryBot.create(:user)
    RegistrationMailer.welcome(user)
  end
end

要回答第二个问题,您也可以简单地用user = User.new(firstname: "Joe")替换上面的夹具线。这将创建一个在预览中使用的新用户,而不会将其持久保存到数据库中。