Рельсовые маршруты с датой - PullRequest
1 голос
/ 11 июня 2011

Мой вопрос касается использования фильтра по дате в маршруте приложения rails, на данный момент у меня все готово есть правило, которое соответствует шаблону даты в файле rout.rb, это выглядит так:

match "itineraries/:day/:month/:year" => "itineraries#index", 
        :constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ }
match "itineraries/new/:day/:month/:year" => "itineraries#new", 
        :constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ }

resources :itineraries
match '/:controller(/:action(/:id))'
root :to => "itineraries#index"

При совпадении, например, / itineraries / 01/01/2011, проблема возникает, когда я генерирую маршрут из ресурса, например, itineraries_path (: year => 2011,: month => 1,:день => 1) создать:

/ маршруты? день = 1 и месяц = ​​1 & год2011

вместо

/ маршруты / 01/01/2011

IsЕсть ли способ поместить правило соответствия внутри сопоставления ресурсов?

1 Ответ

2 голосов
/ 11 июня 2011

хорошо, короткий ответ - ваш маршрут существует, но он еще не назван (проверьте маршруты рейка, чтобы убедиться в этом), и поэтому вы не можете так его назвать (используя itineraries_path)

Итак, правильный способ сделать это будет, например:

match "itineraries/:day/:month/:year" => "itineraries#index", 
    :constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ },
    :as => "itineraries_date"

(обратите внимание на :as часть)

сейчас, если вы позвоните itineraries_date_path(11,12,1998), это даст вам itineraries/11/12/1998

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