как получить маршруты моего приложения, в которых мой двигатель смонтирован из двигателя? - PullRequest
0 голосов
/ 17 апреля 2019

Я хочу перечислить все маршруты, присутствующие в приложении, из движка с помощью кода, написанного в движке, например, выборка маршрутов приложения в приложении с помощью:

routes = Rails.application.routes.routes
routes.collect {|r| r.path.spec.to_s }

указанная выше команда выводит список маршрутов, доступных в основном приложении

1. Какой код будет использоваться в движке для получения маршрутов приложения "в движке"?

Я не могу выбрать маршруты, если использую приведенный выше код в движке

1 Ответ

1 голос
/ 17 апреля 2019

В движке Rails.application.routes.routes будут маршруты его родительского приложения.

YourEngineClass::Engine.routes.routes будет маршрутами движка (имейте в виду, что у них не будет префикса маршрута, который приходит из основного приложения)

Обновление: маршруты доступны после инициализации приложения. Чтобы они были доступны в рейке, вам нужно сделать свою задачу зависимой от :environment:

namespace :your_engine do
  desc "test"
  task some_task: :environment do
    puts "Routes:"
    puts Rails.application.routes.routes.collect {|r| r.path.spec.to_s }.join("\n")
  end 
end
...