Из-за соглашения о формате: Rails будет анализировать все параметры без каких-либо точек.Вы можете иметь параметры маршрута с точками , если хотите:
# You can change the regex to more restrictive patterns
map.connect 'users/:id', :controller => 'users', :action => 'show', :id => /.*/
Но так как подстановочные знаки регулярного выражения '*' и '+' являются жадными, он игнорирует (.: Формат)param полностью.
Теперь, если вам абсолютно необходимо иметь точки в имени пользователя, существует псевдо-обходной путь, который может помочь вам:
map.connect 'users/:id:format', :controller => 'users', :action => 'show', :requirements => { :format => /\.[^.]+/, :id => /.*/ }
map.connect 'users/:id', :controller => 'users', :action => 'show'
Недостатком является то, что вы должны включитьточка в регулярном выражении: format, в противном случае она будет перехвачена выражением имени пользователя.Затем вы должны обработать точечный формат (например, .json) в вашем контроллере.