2012-07-30 49 views
4

我开始学习轨道,而我看到的术语通配符路线,但我已经看到了上市的航线以下两种方式:Rails的通配符路线:VS *

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

/a/path/:all 

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

回答

13

你读过the Rails Guide关于路由吗?这是开始学习Rails路由的好地方。

例如,您将了解到您的第二个代码块是而不是通配符路由。相反,它匹配什么上面的指导是指为Static Segment

您还将了解到,为你似乎试图在第一个代码块强加给段的限制,必须使用:constraints选项,例如因为这通配符路线,或如上面所述引导指它们,Route Globbing

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

然而,上述约束是多余的,因为通配符*all将要匹配无论如何,默认。