我想单独扩展我的rails应用程序的一些子部分,并避免加载整个代码库。
为了举例,让我们考虑APIv1与APIv2,但我也想扩展这个任何类/服务
是否可以从预先加载(生产)或自动加载(在开发中)排除特定文件夹?
例如,
api-v1-production
环境应排除
controllers/api/v[^1]/**/*.rb
api-v2-production
环境应排除
controllers/api/v[^2]/**/*.rb
为了示例,我正在编写[^ x]作为除x之外的所有内容的方便表示法
我知道可以添加一些自动加载/热切的加载文件夹,但是排除一些呢? (特别是如果它们在app/
内,默认情况下是自动加载/急切加载的)
我想避免在内存中加载过多的类/服务等等,我知道它们没用;
答案 0 :(得分:0)
我希望3年后您可能已经找到了解决方案。反正...
您可以尝试以下方法:
将此添加到您的config/environments/api-v1-production
:
config.eager_load_paths -= ["#{config.root}/app/controllers/api/v[^2]"]
将此添加到您的config/environments/api-v2-production
:
config.eager_load_paths -= ["#{config.root}/app/controllers/api/v[^2]"]
希望它能起作用。