Rails通配符路由:冒号 vs 星号

6

我开始学习Rails,看到了诸如通配符路由之类的术语,但是我发现路由可以有以下两种展示方式:

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

并且

/a/path/:all

这两种路由形式有什么区别?
1个回答

28

你是否阅读过 Rails Guide 中有关路由的内容?那是学习 Rails 路由的绝佳起点。

例如,你将会了解到你的第二个代码块并不是通配符路由,而是匹配所谓的静态段

你还将了解到,在第一个代码块中试图实现对段落的限制时,必须使用:constraints选项,就像这个通配符路由一样,或者如上述指南称之为路由全局匹配和通配符段

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接