2012-09-10 47 views
0

我有一個頁面控制器,我支持3個靜態頁面(例如:aboutus,faq和home)。我在控制器內沒有任何操作,只是適當的視圖,因此添加新頁面將很容易。我可以在rails中使用動態命名路由嗎?

我使用的默認路由: 匹配 ':控制器(/:動作(/:ID))(:格式)'

,現在可以通過訪問我的網頁:「HTTP://本地主機: 3000 /頁/常見問題解答」(或任何其他網頁)

我想給這些路由的名字,所以當我創建鏈接到他們從其他頁面,我會使用一些東西一樣:

link_to 'FAQ' faq_path' 

而不是 link_to'FAQ''/ pages/faq'

是否可以創建「動態命名路線」?我已經試過了諸如:

match 'pages/:action' => 'pages#:action', :as => :action 

,但它並沒有真正的工作...

回答

4

,你不能輕易創建這樣的動態方法,但是如果您以不同的方式來考慮它,那麼您實際上是在參數化路徑幫助器。導軌確實有一個簡單的方法來做到這一點:

match "pages/:action", controller: "pages", as: "pages" 

pages_path("faq") # => /pages/faq 
1
match "pages/faq", to: "pages#faq", as: "faq" 
match "pages/home", to: "pages#home", as: "home" 
match "pages/aboutus", to: "pages#aboutus", as: "aboutus" 

會給你下面的助手:

home_path or home_url 
faq_path or faq_url 
aboutus_path or aboutus_url