我的模型如下
应用程序/模型/视图/ def_usage.rb
class Abc
class Def < ActiveRecord::Base
self.table_name = 'vSomeview'
end
end
我正在尝试为此创建一个工厂女孩
规格/工厂/视图/ def_usage.rb
FactoryGirl.define do
factory :def_usage, class: Abc::DefUsage do
......
end
end
我收到错误uninitialized constant Abc::DefUsage (NameError)
我尝试更改class: Views::Abc::DefUsage
或Views::DefUsage
,但没有运气。当我尝试rails console
时,我收到了这个错误。为什么我会收到这个错误?
答案 0 :(得分:2)
您的路径需要与您的模块/类层次结构匹配。
如果您希望自己的班级位于app/models/views/def.rb
,那么您的班级必须为Views::Def
。
如果您希望自己的课程为Abc::Def
,则您的路径必须为app/models/abc/def.rb
。
如果您希望自己的班级名称为DefUsage
,则您的文件名必须为def_usage.rb
。
您不能使用任意路径和类名。如果你希望Rails为你自动加载常量,它们需要匹配。