2011-03-05 86 views
3

用户名我有一个Rails 3的问题。我想让我的用户控制器显示页面具有app.com/people/username网址。与路由错误:在URL

路线

resources :users 
match "/people/:username" => 'users#show', :as => :profile 

它的工作,但如果用户名开头 “” (点),我有一个错误:

没有路由匹配 “/people/.G”

而且

<%= link_to current_user.username, profile_path(current_user.username) %> 

抛出异常:

没有路由匹配{:控制器=> “用户”,:动作=> “秀”,内容:username => “G”}

对不起,我的英语,谢谢小号!

+0

什么是您使用您的link_to的路径吗?你如何格式化“用户名”参数? – goddamnyouryan 2011-08-27 09:24:18

回答

1

我不认为有.开始默认情况下,在轨道线路的支持。你可以这样做

match "/people/:username" => 'users#show', :as => :profile, :username => /[\.a-zA-Z0-9_]+/ 

上述正则表达式匹配., a-z, A-Z, 0-9 and _为有效字符的用户名。

+0

好的,现在它按预期工作,tyvm! – Deku 2011-03-05 13:37:10

+0

/[\.\%a-zA-Z0-9\-\_]+/是我用来允许所有可能的字符正则表达式。它为我工作。 – Anand 2011-04-26 05:34:05