Включить движок alchemy_cms в существующее приложение rails - ошибка маршрутизации
Я пытаюсь использовать alchemy-cms в существующем приложении. У меня есть макет приложения, включая строку меню, которая связана с несколькими контроллерами на моей странице.
Я установил alchemy-cms как двигатель, который работает нормально.
При рендеринге страницы, созданной с помощью Alchemy в макете моего приложения, я получаю ошибку маршрутизации, потому что другие мои контроллеры недоступны в движке Alchemy и его page_controller, который отображает сайт (по крайней мере, это кажется проблемой).
Я хочу, чтобы некоторые страницы создавались / отображались с помощью механизма Alchemy, а некоторые страницы создавались другими контроллерами. Разве это не возможно?
Или, в более общем плане: возможно ли получить доступ к маршрутам из основного приложения внутри установленного двигателя?
1 ответ
Я хочу, чтобы некоторые страницы создавались / отображались с помощью механизма Alchemy, а некоторые страницы создавались другими контроллерами. Разве это не возможно?
Это.
Вы должны смонтировать Alchemy в самой последней точке вашего файла маршрутов. (После ваших пользовательских маршрутов, потому что Алхимия идет с поймать весь маршрут)
Это означает, что если один из ваших пользовательских маршрутов совпадает - он будет использован. Маршруты Алхимии будут использоваться, если ничего не соответствовало ранее.
# routes.rb
MyApp::Application.routes.draw do
... all your custom routes ...
mount Alchemy::Engine => '/'
end
Или, в более общем плане: возможно ли получить доступ к маршрутам из основного приложения внутри установленного двигателя?
Я думаю, что ваш вопрос не в том, как получить доступ к основным маршрутам приложений из движка Alchemy, потому что вы работаете с основным приложением, а не с Alchemy - Alchemy просто появляется как драгоценный камень.
Вы всегда можете получить доступ к основному объекту маршрута приложений следующим образом:
main_app.routes
Или помощники URL:
main_app.new_photo_path
Вы можете получить доступ к маршрутам двигателей (в данном случае Алхимии) с этим помощником:
alchemy.routes