Cyr*_*ris 7 ruby-on-rails autoload eager-loading ruby-on-rails-5
我想单独扩展我的rails应用程序的一些子部分,并避免加载整个代码库.
举个例子,让我们考虑一个APIv1与一个APIv2,但我也想扩展这个任何类/服务
是否可以从预先加载(生产)或自动加载(在开发中)中排除特定文件夹?
例如,
api-v1-production环境应该排除
controllers/api/v[^1]/**/*.rb
Run Code Online (Sandbox Code Playgroud)
api-v2-production环境应该排除
controllers/api/v[^2]/**/*.rb
Run Code Online (Sandbox Code Playgroud)
为了示例,我正在编写[^ x]作为除x之外的所有内容的方便表示法
我知道可以添加一些autoload/eager load文件夹,但是排除一些呢?(特别是如果它们在app/默认情况下是自动加载/急切加载的内部)
我想避免在内存中加载过多的类/服务等,我知道它们没用
我希望三年后你可能已经找到了解决方案。反正...
你可以试试这个:
将其添加到您的config/environments/api-v1-production:
config.eager_load_paths -= ["#{config.root}/app/controllers/api/v[^2]"]
Run Code Online (Sandbox Code Playgroud)
将其添加到您的config/environments/api-v2-production:
config.eager_load_paths -= ["#{config.root}/app/controllers/api/v[^2]"]
Run Code Online (Sandbox Code Playgroud)
希望它有效。
| 归档时间: |
|
| 查看次数: |
377 次 |
| 最近记录: |