如何在路由级别验证rails中的restful参数?

时间:2011-05-07 14:45:17

标签: ruby-on-rails-3 routes

我目前有以下安静的网址:

/questions/2011/05/

我的问题路线是:

match 'questions/:year/:month/' => 'Questions#month'

如何在路由级别验证上述年份和月份参数,以便:

  1. 年和月是整数
  2. 最小/最大年长= 4
  3. 最小/最大月长= 2
  4. 在django中,我可以使用以下行完成上述操作:

    url(r'^questions/(?P<year>\d{4})/(?P<month>\d{2})/$', 'questions.views.month'),
    

    我正在查看导轨指南和Google搜索,我无法在路由级别找到相应的功能。以上是否意味着在控制器级别完成?

1 个答案:

答案 0 :(得分:3)

您正在寻找匹配方法选项哈希的约束选项。

match 'questions/:year/:month/' => 'questions#month', :constraints => {:year => /\d{4}/, :month => /\d{2}/}

Guide | APIDock Documentation