Рельсы, передающие несколько параметров на контроллер
У меня есть маршрут для запроса модели "Сервис":
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'