拥有以下邮件程序预览代码:
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::TestCase
和ActionMailer::Preview
。
如果不是,有没有办法预览邮件而不作为参数User.first
发送,因为我可以在数据库中没有数据填充的机器上进行测试。
答案 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")
替换上面的夹具线。这将创建一个在预览中使用的新用户,而不会将其持久保存到数据库中。