【问题标题】:Rails 4: ActionMailer Preview cannot find ClassRails 4:ActionMailer Preview 找不到类
【发布时间】:2017-07-14 16:17:29
【问题描述】:

我正在尝试预览一封电子邮件,但遇到了一些麻烦。

# 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

当我加载预览时,我看到:

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

为什么会发生这种情况?

【问题讨论】:

    标签: ruby-on-rails-4 actionmailer preview


    【解决方案1】:

    感谢SO Question 我能够诊断出问题。我在创建 mailer 时运行的迁移出现问题。

    问题的根本原因

    当我创建 Invite 邮件程序时,我运行 rails g mailer Invite rails g mailer InviteMailer.

    因此,作为邮件程序的 Invite 会覆盖作为模型的 Invite,因此 一旦将方法应用于 邀请模特。

    我们是如何解决的

    一旦我们确定了问题,就可以解决它 直截了当:

    • 我们将邀请邮件程序的名称从invite.rb 更改为 邀请邮件程序.rb
    • 在新重命名的invite_mailer.rb 文件中,我们 将类 Invite

    希望这对其他人有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-18
      • 2015-02-11
      • 1970-01-01
      • 2014-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多