Rails通配符路由:vs *

时间:2012-07-30 23:14:50

标签: ruby-on-rails wildcard routes

我开始学习rails,我正在看术语通配符路由,但我看到路由列出了以下两种方式:

/a/path/*all', :all => /.*/

/a/path/:all

这两种路线形式有什么区别?

1 个答案:

答案 0 :(得分:18)

您是否在路由中阅读了 the Rails Guide 了吗?这是开始学习Rails中路由的好地方。

例如,您将了解到您的第二个代码块是一个通配符路由。相反,它与上面引用的指南相匹配为 Static Segment

您还将了解到,如果您在第一个代码块中尝试对某个细分受到限制,则必须使用:constraints选项,例如通配符路径 ,或者正如上面的指南所指的那样, Route Globbing

GET  "/a/path/*all", :constraints => { :all => /.*/ }

但是,上述约束是多余的,因为通配符*all默认情况下将匹配.*