Tôi đã có một blogs_controller với một nguồn tài nguyên Blog, vì vậy tôi đã có tuyến đường điển hình của bạn ngay bây giờ như sau:Cách tốt nhất để thực hiện các tuyến đường "/ blog /: năm /: tháng /: ngày /: permalink" trong Rails?
/blogs/new
/blogs/1
/blogs/1/edit #etc
Nhưng đây là những gì tôi muốn:
/blogs/new
/blogs/2010/01/08/1-to_param-or-something
/blogs/2010/01/08/1-to_param-or-something/edit #etc
...
/blogs/2010/01 # all posts for January 2010, but how to specify custom action?
tôi biết rằng tôi có thể làm điều này với sự kết hợp của map.resources và map.connect, nhưng tôi có nhiều lượt xem liên kết đến các trang khác thông qua "new_blog_path" v.v ... và tôi không muốn phải chỉnh sửa chúng. Điều này có thể thực hiện với map.resources không? Nó có thể không dễ dàng, nhưng tôi không chống lại việc thông minh. Tôi đã nghĩ đến một cái gì đó như:
map.resources :blogs, :path_prefix => ':year/:month/:day', :requirements => {:year => /\d{4}/, :month => /\d{1,2}/, :day => /\d{1,2}/}
Nhưng tôi không chắc chắn làm thế nào mà làm việc với những hành động như 'mới' hay 'tạo ra', và nó cũng mang lại cho tôi một con đường như /2010/01/08/blogs/1-to_param-etc
với các blog ở giữa URL.
Vì vậy, có một giải pháp thông minh mà tôi đang thiếu hoặc tôi có cần phải đi tuyến đường map.connect không?
Xin cảm ơn Jay, đây là một bản viết rất hay đã giúp tôi tiết kiệm rất nhiều thời gian ngay hôm nay! –
Giải thích tuyệt vời! –
Phiên bản tuyến đường ray 3 sẽ là gì? – sguha