假设我有一个Book模型,其中包含许多Page模型。
这样做的路由如下:
map.resources :books do |book|
book.resources :pages
end
遵循Rails默认设置很快就会导致问题。假设书#1有10页。第2册中的第一页将有这条路线:
/books/2/pages/11
这是一条非常糟糕的路线,更有意义的是:
/books/2/pages/1
甚至这个:
/books/2/1
有没有办法继续使用map.resources,但得到的结果如下:
/books/{book.id}/pages/{page.page_number}
答案 0 :(得分:1)
没有。您必须使用自定义路由。
随意从http://github.com/augustl/kii/blob/master/config/routes.rb
获取灵感答案 1 :(得分:1)
正如八月所说,你需要使用自定义路由。 但对于页面,您不需要完整的资源路径。只有表演才有必要。
类似于:
map.resources :books do |book|
book.page ':page_id', :action => 'index'
end
将映射默认书籍网址以显示索引,一本书并添加/编辑它们。 还有一个页面
/书籍/ {book.id} / {PAGE_ID}
使用参数“page_id”映射到索引操作。您只需要显示相应的书籍页面;)
答案 2 :(得分:0)
您也可以尝试使用浅选项进行路由!