2012-07-30 76 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將要匹配無論如何,默認。