Reputation: 33
I have a Rails 3 question. I want to get my users controller show page to have the app.com/people/username url.
Route
resources :users
match "/people/:username" => 'users#show', :as => :profile
It's work, but if username starts with "." (dot) I have an error:
No route matches "/people/.G"
And
<%= link_to current_user.username, profile_path(current_user.username) %>
raise an exception:
No route matches {:controller=>"users", :action=>"show", :username=>".G"}
Sorry for my English, Thanks!
Upvotes: 3
Views: 613
Reputation: 222040
I don't think starting with .
is supported by default in rails routes. You can do something like
match "/people/:username" => 'users#show', :as => :profile, :username => /[\.a-zA-Z0-9_]+/
The above regex will match ., a-z, A-Z, 0-9 and _
as valid characters for the username.
Upvotes: 1