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

Posted

技术标签:

【中文标题】如何在路由级别验证 Rails 中的 restful 参数?【英文标题】:How do I validate restful parameters in rails at the routing level? 【发布时间】:2011-05-07 14:45:17 【问题描述】:

我目前有以下restful url:

/questions/2011/05/

我的提问途径是:

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

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

    年月为整数 一年的最小/最大长度 = 4 月的最小/最大长度 = 2

在 django 中,我可以使用以下行来完成上述操作:

url(r'^questions/(?P<year>\d4)/(?P<month>\d2)/$', 'questions.views.month'),

我正在浏览 Rails 指南并四处搜索,但在路由级别找不到相应的功能。以上是否意味着在控制器级别完成?

【问题讨论】:

【参考方案1】:

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

match 'questions/:year/:month/' => 'questions#month', :constraints => :year => /\d4/, :month => /\d2/

Guide | APIDock Documentation

【讨论】:

以上是关于如何在路由级别验证 Rails 中的 restful 参数?的主要内容,如果未能解决你的问题,请参考以下文章

Angular 路由中的 Rails CSRF 令牌问题

如何限制 Rails 路由文件中的资源格式

如何避免Rails 5嵌套资源命名空间路由中的双下划线

如何修复弃用警告:类级别方法将不再继承 Rails 6.1 中的范围?

访问rails中间件中的路由

如何在生产模式下修复 Rails 的路由错误?