如何在子文件夹中维护对象

son*_*002 1 ruby ruby-on-rails ruby-on-rails-4

我的服务文件夹中有很多服务对象.我正在使用Rails 4:

 ->services
   a_gen.rb
   b_gen.rb
   ...
   a_pro.rb
   b_pro.rb
   ...
Run Code Online (Sandbox Code Playgroud)

我想我的文件夹结构是这样的

  ->services
    ->gen
       a_gen.rb
       b_gen.rb
       ...
    ->pro
       a_pro.rb
       b_pro.rb
       ...
Run Code Online (Sandbox Code Playgroud)

我尝试制作文件夹并将对象放在那里,但Rails抱怨无法找到它.我必须告诉铁路看那里吗?

更新:

我收到此错误:

NameError - 未初始化的常量ExampleModelName :: APro

即使加载了路径.一旦它在子文件夹中..Rails正在寻找错误的地方.

Dha*_*udi 5

你可以用两种方式做到这一点.

如果要rails在不对其进行任何修改的情况下自动加载它们config.autoload_paths,请按照以下文件夹结构定义类:

module Gen
  class ServiceA
  end
end
Run Code Online (Sandbox Code Playgroud)

如果您不想对类定义进行任何更改,那么您可以将这些子文件夹添加到config.autoload_paths以下内容中config/application.rb

module YourApplication
  class Application < Rails::Application
    config.autoload_paths += [
      "#{Rails.root}/app/services/gen",
      "#{Rails.root}/app/services/prod"
    ]
  end
end
Run Code Online (Sandbox Code Playgroud)