2015-06-26 51 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

相关问题