eager_load_paths应加载文件,但具有名称空间

时间:2018-07-31 14:02:06

标签: ruby-on-rails ruby-on-rails-5

我们有一个大型的Rails应用程序,并且有一个共享的代码库(控制器,模型等)和一些特定于项目的自定义代码,位于

app/views/custom/project_name/..., 
app/controllers/custom/project_name/... 
# .. and so on.

由于我想分隔这些项目特定的代码(并且还防止在每个服务器上加载所有自定义代码,但仅限于项目名称与主机名fe相同),因此我尝试在lib文件夹中使用rails引擎,但由于缺少名称空间而未能成功(请参见下文)。

我还尝试用

加载代码
# HOSTNAME = `hostname`.strip
config.eager_load_paths += %W(#{Rails.root}/custom/#{HOSTNAME})
config.autoload_paths += %W(#{Rails.root}/custom/#{HOSTNAME})

但是最有问题的是,我希望具有以下内容结构:

root_dir/custom/project_name
  controllers
  views
  models

我仍然希望使用自定义名称空间命名的模型和控制器:

class Custom::ProjectName::Controller < ApplicationController
end

class Custom::ProjectName::MyModel < ApplicationRecord
end

您是否知道如何通过保留名称空间来实现这一点(因为我想防止重复的名称等)?

0 个答案:

没有答案