2015-06-26 50 views
1

我有以下路線:get '/pages/:name', to: "pages#show", as: 'page'爲我的模型Page。我能否自動替換某個角色?我可以自動替換我的網址中的字符嗎?

具體來說,如果一個頁面包含字符「/」的:name,我可以自動使用「_」或最終url中的其他內容替換該字符嗎?

+0

爲什麼在'route.rb' ..你可以將它從源頭權改變? –

+0

如果名稱有一個/字符,那麼它不會擊中該路線,除非您將斜線編碼爲'%2F' – tlehman

+0

@ArupRakshit我想我可以,但在routes.rb中更改它會更有效,而不是更改我的應用中的每一個鏈接。 –

回答

1

更換

get '/pages/:name', to: "pages#show", as: 'page' 

get '/:name', to: redirect {|path_params, _| "/pages/#{path_params[:name].gsub('/','_')}" }, as: 'page' 
get '/pages/:name' => 'pages#show' 
+0

現在我得到這個錯誤:'URI :: InvalidURIError'/ '壞的URI(不是URI?):/ pages/[name]' –

+0

你是如何訪問這個路徑的?您是否使用page_path(名稱:「____」)? – Darpa

相關問題