Ruby on rails 应用/服务文件夹中的Rails命名空间服务对象

Ruby on rails 应用/服务文件夹中的Rails命名空间服务对象,ruby-on-rails,namespaces,autoload,Ruby On Rails,Namespaces,Autoload,我试图将服务对象放入app/services文件夹中,但通过services::SomeModel::SomeClass引用它们,以更好地组织我的代码(该项目相当大) 但是,由于Rails加载文件的方式,app/services被视为基本文件夹,Rails一直希望将类定义为::Tasks::Create,而不是::services::Tasks::Create 我可以通过将我的服务对象放置在一个子目录中来解决这个问题,比如app/classes/services,然后通过::services::

我试图将服务对象放入
app/services
文件夹中,但通过
services::SomeModel::SomeClass
引用它们,以更好地组织我的代码(该项目相当大)

但是,由于Rails加载文件的方式,
app/services
被视为基本文件夹,Rails一直希望将类定义为
::Tasks::Create
,而不是
::services::Tasks::Create

我可以通过将我的服务对象放置在一个子目录中来解决这个问题,比如
app/classes/services
,然后通过
::services::Tasks::Create
,引用它们,但我更希望
/services
文件夹位于
/app
目录中

我不太喜欢某些服务使用的约定,将它们命名为
::Tasks::CreateService
。我用我的方式命名它们的全部原因是,任何人都可以查看代码,了解相关文件的位置,并保持一切井然有序

我尝试过在
config/application.rb
文件中使用
auto\u load
,但这似乎不起作用,因为Rails已经在
app/*
中预加载了文件(这是我的理解)


有没有办法通过
::Services::Model::Action
引用服务对象,并将文件放在
app/Services/Model/Action.rb
中?

我使用的结构与您似乎有问题的结构完全相同……但我没有任何问题。。。我将它们称为
Services::Tasks::Create
(无前导:)…不确定这对您的问题是否重要似乎我必须自动加载
/app
目录,我认为Rails已经完成了这项工作。。。工作,但我不知道“为什么”。我使用完全相同的结构,你似乎有问题…但我没有任何问题。。。我将它们称为
Services::Tasks::Create
(无前导:)…不确定这对您的问题是否重要似乎我必须自动加载
/app
目录,我认为Rails已经完成了这项工作。。。工作,但我不知道“为什么”。
# app/services/tasks/create.rb
module Services
  module Tasks
    class Create
      # ...
    end
  end
end