轨道、自定义文件夹和命名空间



我正在运行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,它假定我正在扩展的上一个类/模块已经存在。