邮件预览中的灯具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了邮件预览中的灯具相关的知识,希望对你有一定的参考价值。

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

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发送,因为我可以在数据库中没有数据填充的机器上进行测试。

答案

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

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

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

以上是关于邮件预览中的灯具的主要内容,如果未能解决你的问题,请参考以下文章

Android:通过片段进行相机预览。从活动中确定

如何通过邮件中的android深层链接打开片段?

这些角度电子邮件指令代码片段如何连接

在预览窗格中打开电子邮件时会触发什么事件?

Outlook不会将ics显示为邮件中的事件

超实用的php代码片段