我开始学习Rails,看到了诸如通配符路由之类的术语,但是我发现路由可以有以下两种展示方式:
/a/path/*all', :all => /.*/
并且
/a/path/:all
这两种路由形式有什么区别?
我开始学习Rails,看到了诸如通配符路由之类的术语,但是我发现路由可以有以下两种展示方式:
/a/path/*all', :all => /.*/
并且
/a/path/:all
你是否阅读过 Rails Guide 中有关路由的内容?那是学习 Rails 路由的绝佳起点。
例如,你将会了解到你的第二个代码块并不是通配符路由,而是匹配所谓的静态段。
你还将了解到,在第一个代码块中试图实现对段落的限制时,必须使用:constraints
选项,就像这个通配符路由一样,或者如上述指南称之为路由全局匹配和通配符段。
GET "/a/path/*all", :constraints => { :all => /.*/ }
但是,上述约束条件是多余的,因为通配符*all
默认情况下会匹配.*
。