一方面,我有一个可安装的引擎,比方说前面 正面包含我的资产和几页 它与MainApp隔离。我不希望它触及主应用程序。可安装引擎的轨道prepend_view_path
另一方面,我想要我的MainApp使用布局和部分Front。 所以我设置的布局是这样的:
class ApplicationController < ActionController::Base
layout 'front/application'
end
但前/应用程序是指发动机的部分直接,因为隔离的,这样
render 'header' # front/ prefix is not required
所以MainApp观点尝试加载应用程序/意见/应用/报头,而不是应用程序/视图/前/应用/报头
要FIXE此我把像这样的prepend_view_path:
class ApplicationController < ActionController::Base
layout 'front/application'
before_filter :prepend_front
protected
def prepend_front
prepend_view_path "app/views/front"
end
end
但是这不起作用,因为引擎路径指向供应商。 引擎将它自己添加到prepend路径列表中:〜/ main_app/vendor/private_gems/front-0.0.2/app/views 我的preprend_front方法创建了这个:〜/ main_app/app/views/front
我tryed以武力前面加上正确的路径(但它看起来这么脏):
prepend_view_path "#{Rails.root}/vendor/private_gems/front-0.0.2/app/views/front"
我不工作,只是崩溃的应用程序...
而且我卡在这里。也许我的设计错了?
确实很好洞察。谢谢 ;) – ProxyGear 2014-01-24 19:07:56