为什么在参数中带有点的路由不匹配?

我有一条适合我的用户的路线/iGEL/contributions,效果很好。但是现在,一个用户注册的名称类似于“ A.B.”,但由于名称中包含点,因此路由不匹配。


我的路线:


get "/:user/contributions" => 'users#contributions'

有任何想法吗?


手掌心
浏览 570回答 3
3回答

慕田峪9158850

请在此处查看蓝色信息框:默认情况下,动态细分不接受点-这是因为点被用作格式化路由的分隔符。如果您需要在动态段中使用点,请添加一个覆盖该点的约束-例如,:id => /[^\/]+/允许除斜杠之外的任何内容。例如,将是:get "/:user/contributions" => 'users#contributions', :constraints => { :user => /[^\/]+/ }

largeQ

如果您的变量段是最后一个段,则使用[^\/]正则表达式也将占用格式。在这种情况下,请使用:/([^\/]+?)(?=\.json|\.html|$|\/)/
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby