问题
I currently have the following restful url:
/questions/2011/05/
My route for questions is:
match 'questions/:year/:month/' => 'Questions#month'
How can I validate the above year and month parameters at the route level so that:
- year and month are integers
- min/max length of year = 4
- min/max length of month = 2
In django, I can do the above with the following line:
url(r'^questions/(?P<year>\d{4})/(?P<month>\d{2})/$', 'questions.views.month'),
I'm looking through the rails guide and googling around and I cannot find the corresponding functionality at the routing level. Is the above meant to be done at the controller level?
回答1:
You are looking for the constraints option to the match method options hash.
match 'questions/:year/:month/' => 'questions#month', :constraints => {:year => /\d{4}/, :month => /\d{2}/}
Guide | APIDock Documentation
来源:https://stackoverflow.com/questions/5921771/how-do-i-validate-restful-parameters-in-rails-at-the-routing-level