2009-09-21 52 views
0

假設我有一個Book模型,其中包含許多Page模型。在Rails中定製map.resources

此路由會像這樣:

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} 

回答

1

獲得靈感截至今年8月說,你需要使用自定義路由爲。 但是對於頁面,您不需要完整的資源路由。只有顯示將是必要的。

因此,像:

map.resources :books do |book| 
    book.page ':page_id', :action => 'index' 
end 

將映射默認圖書網址顯示的指數,一本書和添加/編輯它們。 但也是一個頁面

/books/{book.id}/{page_id}

映射到與參數 「PAGE_ID」 索引操作。你只需要顯示適當的書籍頁面;)

0

你也可以嘗試你的路由淺選項!