Ruby on rails 4 Rails 4:ActionMailer预览找不到类

Ruby on rails 4 Rails 4:ActionMailer预览找不到类,ruby-on-rails-4,actionmailer,preview,Ruby On Rails 4,Actionmailer,Preview,我试图预览一封电子邮件,但遇到了一些麻烦 # test/mailers/previews/food_order_preview.rb class FoodOrderPreview < ActionMailer::Preview def food_order_email @food_order = FoodOrder.first # line with error @fields = @food_order.with_values F

我试图预览一封电子邮件,但遇到了一些麻烦

# test/mailers/previews/food_order_preview.rb
class FoodOrderPreview < ActionMailer::Preview
    def food_order_email
        @food_order = FoodOrder.first  # line with error
        @fields = @food_order.with_values
        FoodOrder.food_order_email(order, fields)
    end
end
为什么会发生这种情况?

多亏了这一点,我才能够诊断出问题。创建
mailer
时运行的迁移出现问题

问题的根本原因

当我创建Invite mailer时,我运行了rails g mailer Invite rails的g-mailer-InviteMailer

因此,Invite as mailer会覆盖Invite as模型,因此 一旦将方法应用于的实例,就会创建错误 邀请模特

我们是如何修复的

一旦我们确定了问题,解决它就相当不错了 直截了当:

  • 我们将邀请邮件程序的名称从Invite.rb更改为 邀请_mailer.rb
  • 在新重命名的invite_mailer.rb文件中,我们 将类Invite
希望这对其他人有帮助

NoMethodError (undefined method `first' for FoodOrder:Class):
  test/mailers/previews/food_order_preview.rb:6:in `food_order_email'