0

只是想知道如何编辑我的路由文件以允许路由带有下划线字符“_”的用户名。以下是相关代码:

controller :users do
 match ':id' => :show, :via => :get, :constraints => { :id => /[A-Za-z0-9\-\+]+/ }
end
4

3 回答 3

2

更新您的正则表达式以添加_如下:

/[A-Za-z0-9\-\_\+]+/

完成match后将如下所示:

match ':id' => :show, :via => :get, :constraints => { :id => /[A-Za-z0-9\-\_\+]+/ }
于 2012-04-20T00:49:48.770 回答
2

构造A-Za-z0-9\_\w. 所以我们可以使用更短的版本:

/[\w\-\+]+/
于 2012-04-21T12:57:11.317 回答
0

我认为这个正则表达式模式不会忽略这个测试字符串:

XXXX XXXXX

它在字符串之间有空格。如果您更新此正则表达式模式,它将忽略该测试字符串:

controller :users do
  match ':id' => :show, :via => :get, :constraints => { :id => /^[\w\-\+]+$/ }
end
于 2012-04-20T04:13:44.727 回答