Рельсы, передающие несколько параметров на контроллер

У меня есть маршрут для запроса модели "Сервис":

resources :services, :path => 'services'

Когда GET запрашивает путь /services/sn-uber Я беру параметр sn(имя службы) и нахожу его в базе данных. Как добавить туда еще один параметр типа sd(service-district)?

Например /services/sn-uber/sd-brooklyn или же /services/sd-brooklyn поэтому любой параметр может быть опущен.

1 ответ

Решение

Добавьте что-то подобное в ваши маршруты:

get 'services(/sn/:sn_name)(/sd/:sd_name)', controller: 'services', action: 'show'

Ваш URL будет выглядеть так:

  • /services/sn/uber/sd/brooklyn
    • параметры будут sn_name а также sd_name
  • /services/sn/uber
    • парам будет sn_name
  • /services/sd/brooklyn
    • парам будет sd_name

Если вы хотите, чтобы ваш URL был таким /services/sn-uber/sd-brooklyn:

get 'services(/:sn_name)(/:sd_name)', controller: 'services', action: 'show'
Другие вопросы по тегам