Ruby on rails 3 如何更改rails3中插件/引擎中渲染部分的搜索顺序?
我正在用Rails3编写一个模块化项目,我有这个问题 我有我的主要项目,我想用不同的定制实现其中的一部分,所以我使用Engine,所以我:Ruby on rails 3 如何更改rails3中插件/引擎中渲染部分的搜索顺序?,ruby-on-rails-3,ruby-on-rails-plugins,rails-engines,Ruby On Rails 3,Ruby On Rails Plugins,Rails Engines,我正在用Rails3编写一个模块化项目,我有这个问题 我有我的主要项目,我想用不同的定制实现其中的一部分,所以我使用Engine,所以我: - app - views - shared - _header.html.erb <-- This one is called - ... - config - ... - vendors - plugins - myplugin - app - views
- app
- views
- shared
- _header.html.erb <-- This one is called
- ...
- config
- ...
- vendors
- plugins
- myplugin
- app
- views
- controller1
- action1.html.erb
- shared
- _header.html.erb <--- I want to render this!
-app
-观点
-共享
-_header.html.erb我们遇到了完全相同的问题,并得出如下结论:
def self.prioritize_engine_view_paths!(engine)
self.view_paths = engine.paths["app/views"].existent + MyApp::Application.paths["app/views"].existent
end
它在主应用程序的ApplicationController中定义,然后在每个引擎的ApplicationController中调用:
module MyEngine
class ApplicationController < ::ApplicationController
prioritize_engine_view_paths!(MyEngine::Engine)
end
end
有关详细信息,请参阅
module MyEngine
class ApplicationController < ::ApplicationController
prioritize_engine_view_paths!(MyEngine::Engine)
end
end
config.railties_order = [Blog::Engine, :main_app, :all]