只是想知道如何编辑我的路由文件以允许路由带有下划线字符“_”的用户名。以下是相关代码:
controller :users do
match ':id' => :show, :via => :get, :constraints => { :id => /[A-Za-z0-9\-\+]+/ }
end
只是想知道如何编辑我的路由文件以允许路由带有下划线字符“_”的用户名。以下是相关代码:
controller :users do
match ':id' => :show, :via => :get, :constraints => { :id => /[A-Za-z0-9\-\+]+/ }
end
更新您的正则表达式以添加_
如下:
/[A-Za-z0-9\-\_\+]+/
完成match
后将如下所示:
match ':id' => :show, :via => :get, :constraints => { :id => /[A-Za-z0-9\-\_\+]+/ }
构造A-Za-z0-9\_
与\w
. 所以我们可以使用更短的版本:
/[\w\-\+]+/
我认为这个正则表达式模式不会忽略这个测试字符串:
XXXX XXXXX
它在字符串之间有空格。如果您更新此正则表达式模式,它将忽略该测试字符串:
controller :users do
match ':id' => :show, :via => :get, :constraints => { :id => /^[\w\-\+]+$/ }
end