2010-07-27 93 views
0

我正在構建一篇文章/博客網站,其中任何文章可能會在一系列URL路徑中顯示。Rails 2 Trailing Route參數

/section/article 
/section/page/article 
/section/page/page2/article 

這工作,但如果我想有該文章(/頁/ 123)的頁碼被綁定到這些網址

/section/article/page/123/ 
/section/page/article/page/123 
/section/page/page2/article/page/123 

這意味着我將不得不創造每個不同網址的具體路線?

/:section/:page/:sub_page/:article/page/:page 

這意味着我會創建幾十個URL路由參數。

是否有無論如何說,所有的URL可能在URL的末尾有一個/ page/NUMBER後綴,仍然正常路由(即將NUMBER分配給參數並繼續正常轉到頁面)?

回答

1

在這種情況下,路徑通配可能在http://guides.rubyonrails.org/routing.html#route-globbing中描述。例如,您的路線可能爲map.connect '/:section/*page_subpage_path/page/:number', :controller => 'articles', :action => 'show'

此確切代碼可能無法按預期工作,但此方法可能是一個很好的嘗試方向。祝你好運:)

0

如果您要創建自定義的路線,您通常需要創建大量路線以適應它們。當使用map.resource時,通用格式爲/ resource /:id,除此之外的任何內容都由您來指定。

鑑於Rails的routes.rb文件是可執行的ruby,你可以通過重複模式或者根據需要在數組上進行組合來編程地定義你的路由。