Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 如何更改rails3中插件/引擎中渲染部分的搜索顺序?_Ruby On Rails 3_Ruby On Rails Plugins_Rails Engines - Fatal编程技术网

Ruby on rails 3 如何更改rails3中插件/引擎中渲染部分的搜索顺序?

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

我正在用Rails3编写一个模块化项目,我有这个问题

我有我的主要项目,我想用不同的定制实现其中的一部分,所以我使用Engine,所以我:

- 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]