我有一个必须在resource_controller之前加载的插件。原因是Resourcecontroller试图加载ApplicationController,它取决于所述插件(并且如果插件的init.rb尚未加载,将无法加载)。如何在Rails中控制gems vs plugins加载顺序
问题是ResourceController来自gem而不是插件。
有没有办法加载插件之前的宝石(从environment.rb的“config.gem ...”)?
我有一个必须在resource_controller之前加载的插件。原因是Resourcecontroller试图加载ApplicationController,它取决于所述插件(并且如果插件的init.rb尚未加载,将无法加载)。如何在Rails中控制gems vs plugins加载顺序
问题是ResourceController来自gem而不是插件。
有没有办法加载插件之前的宝石(从environment.rb的“config.gem ...”)?
如果您完全依赖config.gem
来加载它们,那么在gem之前没有加载插件的方法,但这并不意味着您无法将resource_controller gem加载到您自己的手中。
作为一个非常残酷的解决方案,您可以删除相关的config.gem
行,然后明确地“require
”它在environment.rb
的底部。
在Initializer.rb代码快速浏览显示:
load_gems
load_plugins
# pick up any gems that plugins depend on
add_gem_load_paths
load_gems
check_gem_dependencies
如果我理解正确的话,宝石总是插件,然后......然后一些宝石的插件需要。
为什么不使用resource_controller作为插件呢? 只是不使用“config.gem ...”并将其放入plugins目录中。
对于environment.rb中rails2.3x设置你的宝石LIB =>假,然后需要在after_initialize块
config.gem 'some_gem', :lib => false
config.after_initialize do
require 'some_gem'
end
这会做到这一点的宝石。