#ruby-on-rails-3 #routes
#ruby-on-rails-3 #маршруты
Вопрос:
В настоящее время у меня есть следующий restful URL:
/questions/2011/05/
Мой маршрут для вопросов таков:
match 'questions/:year/:month/' => 'Questions#month'
Как я могу проверить вышеуказанные параметры года и месяца на уровне маршрута, чтобы:
- год и месяц являются целыми числами
- минимальная / максимальная продолжительность года = 4
- минимальная / максимальная продолжительность месяца = 2
В django я могу сделать вышеуказанное со следующей строкой:
url(r'^questions/(?P<year>d{4})/(?P<month>d{2})/$', 'questions.views.month'),
Я просматриваю руководство по rails и гуглю, но не могу найти соответствующую функциональность на уровне маршрутизации. Подразумевается ли вышесказанное на уровне контроллера?
Ответ №1:
Вы ищете параметр constraints для хэша параметров метода сопоставления.
match 'questions/:year/:month/' => 'questions#month', :constraints => {:year => /d{4}/, :month => /d{2}/}