未初始化的常量名称错误

时间:2017-04-19 20:15:43

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

我的模型如下

应用程序/模型/视图/ 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::DefUsageViews::DefUsage,但没有运气。当我尝试rails console时,我收到了这个错误。为什么我会收到这个错误?

1 个答案:

答案 0 :(得分:2)

您的路径需要与您的模块/类层次结构匹配。

如果您希望自己的班级位于app/models/views/def.rb,那么您的班级必须为Views::Def

如果您希望自己的课程为Abc::Def,则您的路径必须为app/models/abc/def.rb

如果您希望自己的班级名称为DefUsage,则您的文件名必须为def_usage.rb

您不能使用任意路径和类名。如果你希望Rails为你自动加载常量,它们需要匹配。