Spree 扩展中的新模型:未初始化的常量 Spree::MyClass

New model in Spree extension: uninitialized constant Spree::MyClass

我正在尝试在 spree 扩展中创建一个新模型。我生成了一个模型,它在 /spree_extension/app/models/my_class.rb:

module Spree
  class MyClass < Spree::Base
    belongs_to :product
  end
end

但是当我启动我的应用程序时,没有 Spree::MyClass,我得到这个错误:

NameError: uninitialized constant Spree::MyClass

我尝试将 my_class.rb 移动到 "spree" 目录,但没有任何帮助。

很可能,您需要将 class 放入:

/spree_extension/app/models/spree/my_class.rb

因为 rails 总是希望在具有相同名称的文件中找到 classes,在具有模块名称的文件夹中。

问题实际上是我创建了一个 table my_class

自从我将其重命名为 spree_my_class 后,它就起作用了。