我开始学习rails,我正在看术语通配符路由,但我看到路由列出了以下两种方式:
/a/path/*all', :all => /.*/
和
/a/path/:all
这两种路线形式有什么区别?
答案 0 :(得分:18)
您是否在路由中阅读了 the Rails Guide 了吗?这是开始学习Rails中路由的好地方。
例如,您将了解到您的第二个代码块不是一个通配符路由。相反,它与上面引用的指南相匹配为 Static Segment
您还将了解到,如果您在第一个代码块中尝试对某个细分受到限制,则必须使用:constraints
选项,例如通配符路径 ,或者正如上面的指南所指的那样, Route Globbing
GET "/a/path/*all", :constraints => { :all => /.*/ }
但是,上述约束是多余的,因为通配符*all
默认情况下将匹配.*
。