Rails,自定义文件夹和命名空间

时间:2012-11-22 10:42:24

标签: ruby-on-rails ruby

我正在运行Rails 3.2.7,

我有一个'/ app / jobs'文件夹

以及我的'config / application.rb'文件中的以下内容

config.autoload_paths += %W(#{Rails.root}/app/jobs)

一切都很好。

但是,如果我想命名我的类,例如

class Jobs::UpdateGameStatus
  #methods etc
end

而不是

class UpdateGameStatus
  #methods etc
end

然后我得到

  

未初始化的常量作业(NameError)

这不是世界末日,但我很想知道为什么......

2 个答案:

答案 0 :(得分:2)

我最终修复了它,用Jobs模块包装我的所有类是我需要做的。

我的文件位于“app / jobs”

看起来像这样

module Jobs
  class JobName
    #methods etc
  end
end

并且像这样使用

Jobs::JobName.method(args)

答案 1 :(得分:1)

我知道你已经对它进行了排序,这是旧的,但在ruby中,也可以使用class Jobs::JobName直接声明命名空间类。打字少了一点,并取得了相同的结果。

编辑:正如@D-side指出的那样,必须已经定义了乔布斯。我自己使用它的代码基于STI,它假定我扩展的前一个类/模块已经存在。

相关问题