在Rails应用程序中允许用户名路由中的下划线

时间:2012-04-20 00:46:24

标签: ruby-on-rails regex

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

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

3 个答案:

答案 0 :(得分:2)

更新正则表达式以添加_,如下所示:

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

完成的match将如下所示:

match ':id' => :show, :via => :get, :constraints => { :id => /[A-Za-z0-9\-\_\+]+/ }

答案 1 :(得分:2)

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

/[\w\-\+]+/

答案 2 :(得分:0)

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

XXXX XXXXX

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

controller :users do
  match ':id' => :show, :via => :get, :constraints => { :id => /^[\w\-\+]+$/ }
end