У меня есть ловушка before_filter в контроллере приложения моего основного приложения, которая делает что-то вроде: (Она не просто помещает ссылку во флэш-память, есть сообщение, но не имеет отношения к вопросу, она просто обращается к маршрут в методе)
class ApplicationController < ActionController::Base
before_filter :set_link
def set_link
flash[:notice] = items_path
end
end
Это прекрасно работает для приложения, однако, когда я вхожу в контроллеры для двигателя, который я сделал, я получаю исключение
No route matches {:controller=>"items", :action=>"index"}
Я понимаю, что, когда в двигателе, помощники маршрута предназначены для двигателя, если только не префикс main_app
Таким образом, изменив метод в контроллере приложения на
def set_link
flash[:notice] = main_app.items_path
end
Избавляется от исключения, но я действительно не хочу этого делать. Есть ли другое решение, чтобы заставить движок распознавать маршруты main_app?
EDIT:
Это также происходит, если разметка приложения вызывает помощников пути. Так что, если движок спроектирован для интеграции в макет main_app, то эта проблема также возникнет там.