2010-10-18 113 views
0

爲什麼在Rails 3中,您必須取消match ':controller(/:action(/:id(.:format)))'(如Hello World article所示)的註釋以使您在訪問http://localhost:3000/hello時調用hello控制器的索引方法?有人可以解釋爲什麼我們必須在Rails 3中做到這一點,但不是Rails 2,這對於Rails 3來說是正常的事情嗎?或者它是一種破解?Rails 3路由問題

回答

4

該特定匹配對於尚未定義的任何請求來說都是可以捕獲的。

理想情況下,您應該使用Resource Routing,但該匹配器仍然作爲傳統支持存在。

它是由註釋掉了,因爲Rails的假定,如果一個用戶試圖訪問你沒有明確定義的路由,它應該引起404錯誤,而不是一個500錯誤,這是,如果我想會發生什麼在啓用匹配器的情況下訪問http://localhost:3000/hello,因爲沒有'hello'控制器。

+0

某種形式的傳統路線是否存在危險或安全漏洞? – Nitrodist 2012-03-09 18:14:55