В одной руке у меня есть монтируемый движок, скажем, Front Front содержит мои ресурсы и пару страниц, которые изолированы от MainApp.Я не хочу, чтобы оно касалось основного приложения.
С другой стороны, я хочу, чтобы мое MainApp использовало макет и часть Front.Поэтому я настроил макет следующим образом:
class ApplicationController < ActionController::Base
layout 'front/application'
end
Но фронт / приложение относятся к частичной части двигателя напрямую, из-за изоляции, как это
render 'header' # front/ prefix is not required
Таким образом, представления MainApp пытаются загрузитьapp / views / application / header вместо app / views / front / application / header
Чтобы исправить это, я поставил 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
Но это не работает, потому чтопуть двигателя указывает на поставщика.Движок сам добавит это в список предустановленных путей: ~ / main_app / vendor / private_gems / front-0.0.2 / app / views И мой метод preprend_front создаст это: ~ / main_app / app / views / front
Я попытался принудительно вставить правильный путь (но он выглядит таким грязным):
prepend_view_path "#{Rails.root}/vendor/private_gems/front-0.0.2/app/views/front"
У меня не работает, просто вылетает приложение ...
И язастрял здесь.Может быть, мой дизайн не так?