我已经阅读了有关Routing、Restful Resources和UrlHelper的 Rails 文档,但仍然不了解创建复杂/嵌套路由的最佳实践。我现在正在处理的示例是事件,它有_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
为 return "#{self.id.to_s}-#{self.title.parameterize}"
,但我更愿意拥有/id/title
整个规范性