我在控制器PagesController
中創建了一個名爲error404
的操作。我想顯示這個動作,如果發生以下情況:生成404錯誤
- 在URL的控制器不存在
- 在URL的動作不存在
我怎樣才能做到這一點?
我試圖按照此頁上的說明Show a 404 instead of 500 in Rails,但似乎只適用於第一種情況。
感謝您的幫助。 :)
我在控制器PagesController
中創建了一個名爲error404
的操作。我想顯示這個動作,如果發生以下情況:生成404錯誤
我怎樣才能做到這一點?
我試圖按照此頁上的說明Show a 404 instead of 500 in Rails,但似乎只適用於第一種情況。
感謝您的幫助。 :)
我想如果您的控制器中的操作不存在,並且您的控制器是由腳手架生成的,那麼默認情況下它會轉到控制器的'show'方法。
對於防爆; - http://www.domain.com/controller_name/invalid_action_name
這裏你 「CONTROLLER_NAME」 是有效的控制。 &
「invalid_action_name」爲無效操作。
然後在默認情況下,它將params [:id]視爲「invalid_action_name」的「controller_name」&的'show'方法。
所以在表演方法,你可以拯救錯誤,可顯示有效的錯誤頁面,如「記錄找不到」或「錯誤404」
EDITED 你必須添加路線在新的方法名的/config/routes.rb如下
map.resources :controller_name, :collection=>{:show=>:get}
不要忘記每當你改變這個文件時重啓服務器。
謝謝。我對RoR很陌生,不太明白。 我創建了一個名爲「show」的新動作。當我點擊invalid_action_name時,它沒有進入動作「顯示」。它只是給我...... 未知的行動 對invalid_action_name沒有響應。操作:xxxx,xxxx,xxx 是我犯了什麼錯誤? – 2010-04-26 11:05:21
你必須添加路由到你的routes.rb。請查看我編輯的答案。 – Salil 2010-04-26 11:27:48
oops。它不適合我。但感謝您的幫助。 :) – 2010-04-26 12:36:14