2014-01-18 50 views
0

如果我有以下途徑別名路線4

resources :pages do 
    resources :sections 
end 

我得到的路線是這樣的:

/pages = #index 
/pages/:id = #show 
/pages/:id/edit = #edit 
...etc 

我如何去製作它,這樣的URL#顯示頁面控制器的動作看起來像'/:id',沒有'/ pages /'前綴?我應該從資源中排除#show:頁面&分別爲它創建一個獲取路線+別名?或者有沒有一種方法可以從資源內部完成它:頁面塊?先謝謝了。

編輯:

將其改爲:

resources :pages, except: [:show] do 
    resources :sections 
end 

get '/:id', to: 'pages#show' 

&重路由不存在:IDS' 404現在,讓我知道,如果有更好的解決方案。謝謝。

回答

2
get '/:id', to: 'pages#show', as: 'page' 

確認這是在您routes.rb文件的底部,否則它會劫持請求其他路線。

這也給你page_urlpage_path輔助方法。但要使用它們,您必須排除以前路線中的show操作。

resources :pages, except: [:show] 
+0

需要注意的是,如果你要做到這一點,你應該刪除從'資源'show'動作:用'資源pages':網頁,除了:「show'' – meagar

+0

認爲這將是沿這些線條;謝謝。 – user3206458