Я прочитал документы Rails для Маршрутизация , Ресурсы Restful и UrlHelper , и до сих пор не понимаю лучшие практики для создания сложных вложенные маршруты. Пример, над которым я сейчас работаю, относится к событиям has_many rsvps. Поэтому пользователь просматривает список событий, регистрирует клики, проходит процесс регистрации и т. Д. Я хочу, чтобы URL-адреса выглядели так:
/events
/events/123 # possible without title, like SO
/events/123/my-event-title # canonical version
/events/my-category/123/my-event-title # also possible like this
/events/123/my-event-title/registration/new
... and all the restful nested resouces.
Вопрос в том, как мне сделать это с минимальным количеством кода?
Вот что у меня сейчас есть:
map.resources :events do |event|
event.resources :rsvps, :as => "registration"
end
Вот и получилось:
/events/123/registration
Какой лучший способ выполнить другие 2 маршрута?
/events/123/my-event-title # canonical version
/events/my-category/123/my-event-title # also possible like this
Где my-category
- это просто массив из 10 возможных типов, которым может быть событие.
Я изменил Event#to_param
, чтобы вернуть "#{self.id.to_s}-#{self.title.parameterize}"
, но я бы предпочел иметь /id/title
со всей канонической сущностью