Ограничения параметров маршрута, препятствующие правильному определению формата - PullRequest
0 голосов
/ 22 декабря 2011

Рельсы 3.1.3 .

# routes.rb
get "posts/:id" => "posts#show", :constraints => { :id => /\d.+/ }

В консоли рельсов

> Rails.application.routes.recognize_path("posts/101-haha.js")
=> {:controller=>"posts", :action=>"show", :id=>"101-haha.js"}

Мой rake routes дает

GET      /posts/:id(.:format)

Итак, поскольку .:format представляется неявным, почему он не определяет формат правильно? Это потому, что мое ограничение слишком жадный ?

1 Ответ

0 голосов
/ 22 декабря 2011

/\d.+/ съедает точку "."в ".js".
Попробуйте убежать от него:

get "posts/:id" => "posts#show", :constraints => { :id => /\d([^\.].)+/ }

http://rubular.com/r/ecqCnnYBpK

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...