Включить движок 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
Другие вопросы по тегам