为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

手掌心 2019-10-19 16:58:30
我有一条适合我的用户的路线/iGEL/contributions,效果很好。但是现在,一个用户注册的名称类似于“ A.B.”,但由于名称中包含点,因此路由不匹配。我的路线:get "/:user/contributions" => 'users#contributions'有任何想法吗?
查看完整描述

3 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

请在此处查看蓝色信息框:


默认情况下,动态细分不接受点-这是因为点被用作格式化路由的分隔符。如果您需要在动态段中使用点,请添加一个覆盖该点的约束-例如,:id => /[^\/]+/允许除斜杠之外的任何内容。


例如,将是:


get "/:user/contributions" => 'users#contributions', :constraints => { :user => /[^\/]+/ }


查看完整回答
反对 回复 2019-10-19
?
largeQ

TA贡献2039条经验 获得超7个赞

如果您的变量段是最后一个段,则使用[^\/]正则表达式也将占用格式。在这种情况下,请使用:


/([^\/]+?)(?=\.json|\.html|$|\/)/


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 528 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信