Получить список используемых сегментов пути в действии контроллера - PullRequest
0 голосов
/ 22 октября 2018

При динамическом создании маршрутов для приложения Rails, как узнать, какие сегменты пути используются в запросе?

Хэш запроса params содержит используемые сегменты пути и их значения, но также содержитдругие вещи.Это делает невозможным узнать, какие ключи в хеше params являются ключами сегментов пути.

Пример : Следующие динамически создают маршруты (например, /photos/:photoId) в моем приложении:

MyApp::Application.routes.append do
  routes.values.each do |route|
    get "/#{route['path']}" => 'routes#show'
  end
end

Есть ли способ получить сегменты, используемые для маршрута в действии контроллера?

В качестве альтернативы, можно ли передать дополнительные аргументы действию контроллера?

1 Ответ

0 голосов
/ 22 октября 2018

Оказывается, что к действиям контроллера можно добавить произвольные аргументы, например:

MyApp::Application.routes.append do
  routes.values.each do |route|
    get "/#{route['path']}" => 'routes#show', segments: route['segments']
  end
end

Я предполагал, что это не так, потому что это не упоминалось нигде в статье "Rails"Маршрутизация с внешнего входа ".


Это не идеально, так как требует, чтобы я сохранил сегменты вместе с моими объектами маршрута.Было бы предпочтительно, чтобы Rails предоставлял хэш сегментов , содержащий как динамические, так и групповые сегменты пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...