Ruby on rails 未初始化的常量名称错误
我有如下的模型 app/models/views/def_usage.rbRuby on rails 未初始化的常量名称错误,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我有如下的模型 app/models/views/def_usage.rb class Abc class Def < ActiveRecord::Base self.table_name = 'vSomeview' end end FactoryGirl.define do factory :def_usage, class: Abc::DefUsage do ...... end end 我收到错误未初始化常量Abc::defusion(namererror)
class Abc
class Def < ActiveRecord::Base
self.table_name = 'vSomeview'
end
end
FactoryGirl.define do
factory :def_usage, class: Abc::DefUsage do
......
end
end
我收到错误未初始化常量Abc::defusion(namererror)
我试图更改
class:Views::Abc::defusion
或Views::defusion
,但没有成功。我在尝试执行rails控制台时遇到了这个错误。为什么会出现此错误?您的路径需要与模块/类层次结构相匹配
如果希望类位于app/models/views/def.rb
,则类必须位于views::def
如果希望类是Abc::Def
,则路径必须是app/models/Abc/Def.rb
如果希望类名为defusion
,则文件名必须为def_usage.rb
不能使用任意路径和类名。如果您想让Rails自动为您加载常量,它们需要匹配。谢谢。所以我的类在models/views/def_usage.rb中,我在factory girl views::defuse中命名它,那么它应该正常工作吗?但是得到相同的错误尝试一下models/def_usage.rb
并调用类defusion
没有真正的理由需要将它放在视图中,所以当我将它移动到models/abc/def_usage.rb并在工厂中命名为abc::defusion时,它就工作了。现在可以工作了。谢谢米加和卡尔