2015-05-07 6 views
3

Я хотел бы знать, как получить доступ к маршрутам двигателя, используя Rails.application.routes.url_helpers.Доступ к маршрутам двигателя из Rails.application.routes.url_helpers

У меня есть фабричный объект, который создает строку, содержащую динамически сгенерированный URL-адрес. В настоящее время я могу генерировать URL-адреса, используя Rails.application.routes.url_helpers.(INSERT PATH NAME).

Однако он может получить доступ только к маршрутам в главном приложении. Я не могу получить доступ к маршрутам двигателей, установленных в главном приложении.

Вещи, которые я попробовал

  1. Я пытался использовать Rails.application.routes.engine_name где engine_name это имя, под которым двигатель установлен на главном приложении.

  2. Я попытался использовать MyEngine::Engine.routes.url_helpers для доступа к маршрутам в Двигателе. Он работает, но я хотел бы использовать Rails.application.routes.url_helpers, потому что есть много таких фабричных объектов, как этот, и все они наследуются от суперкласса, который разбивает url_helper на Rails.application.routes.

Любые предложения? Дайте мне знать, если требуется какое-либо разъяснение.

ответ

0

Вы должны использовать метод прокси-сервера двигателя. Из вашего примера вызовите помощника URL-адрес, используя следующий синтаксис, например:

my_engine_engine.articles_path 

Чтобы переименовать вспомогательный метод прокси, просто редактировать маршруты, конфигурационный файл внутри приложения рельсы:

mount MyEngine::Engine => '/app', :as => 'my_engine' 

так что вы можете теперь звоните в предыдущий пример:

my_engine.articles_path 
+0

Это отдаленно актуально для моего вопроса, и я уточнил, что я уже пробовал что-то в этом духе. –

Смежные вопросы