我正在运行Rails 3.2.7,
我有一个文件夹"/应用/工作"
以及我的"config/application.rb"文件中的以下内容
config.autoload_paths += %W(#{Rails.root}/app/jobs)
一切都很好。
但是,如果我想为我的类命名,例如
class Jobs::UpdateGameStatus
#methods etc
end
而不是
class UpdateGameStatus
#methods etc
end
然后我得到
未初始化的常量作业(名称错误)
这不是世界末日,但我想知道为什么...
我最终修复了它,用 Jobs 模块包装我所有的类是我需要做的。
我的文件位于"应用/作业"中
看起来像这样
module Jobs
class JobName
#methods etc
end
end
并像这样使用
Jobs::JobName.method(args)
我知道你已经解决了这个问题,这很旧,但在 ruby 中,也可以使用 class Jobs::JobName
直接声明命名空间类。 它少了一点打字,并达到了相同的结果。
编辑:正如@D方指出的那样,乔布斯必须已经定义。 我自己使用它的代码基于 STI,它假定我正在扩展的上一个类/模块已经存在。