在Rails应用程序中,我在routes.rb下面有这个当前的Regex验证器
match 'profile/:username' => 'users#show', :as => :profile, :constraints => { :username => /[ a-zA-Z0-9\-\_ ]+/ }
这个约束在rails2中有效,但在rails3中它不起作用并给我一个路由错误
没有路线匹配[GET]
上面的正则表达式用于非空白用户名(jai)和用于空白用户名(jai lalawat)它不起作用
答案 0 :(得分:4)
浏览器用%20
替换空格。所以改变你的正则表达式也是如此。
match 'profile/:username' => 'users#show', :as => :profile, :constraints => { :username => /[ a-zA-Z0-9\-\_20% ]+/ }
答案 1 :(得分:1)
在routes.rb中为上述路线添加%20个字符
match 'profile/:username' => 'users#show', as: :profile, constraints: { username: /[ a-zA-Z0-9\-\_20% ]+/ }