我是Rails開發的新手,我有一個關於處理未知動作的問題。處理那種錯誤的最好方法是什麼?在Rails中處理未知動作3
7
A
回答
10
不要處理它。如果用戶輸入了錯誤的URL,那麼當您切換到生產環境時,他將收到404錯誤。
由於您處於開發環境中,您只會收到異常。
0
你應該沒問題,可以使用默認的Rails處理,它將在公共目錄中加載404文件。
1
顯示404錯誤,用戶輸入了一個URL,在該URL中沒有定義要處理的Controller(或路由)中的相應Action。它應該像用戶輸入example.com/controller/jbsandfodsafoiuaudsfbsadf87basdfgsadfdsa
一樣對待。
0
在生產模式下,異常將自動處理。 但有些情況下我們想處理異常。在我們的例子中,我們爲這些頁面提供了特殊的佈局。
在應用控制器,你必須拯救例外是這樣的:
PAGE_NOT_FOUND_ERRORS = ActiveRecord::RecordNotFound, ActionController::RoutingError, ActionController::UnknownAction, ActionController::UnknownController
def rescue_action_in_public(exception)
case exception
when *PAGE_NOT_FOUND_ERRORS
render_404
else
render_500
end
end
def render_404
render :file => File.join(RAILS_ROOT, 'public', '404.html'), :status => 404, :layout => true
end
def render_500
render :file => File.join(RAILS_ROOT, 'public', '500.html'), :status => 500
end
1
在config/environments/development.rb
,關閉consider_all_requests_local
並重新啓動服務器。現在你會看到錯誤頁面。完成設計後,再打開consider_all_requests_local
並重新啓動服務器。
在生產中,人們將獲得您設計的404頁面。在開發中,您可以看到堆棧跟蹤,以便您可以調試自己的錯誤。
相關問題
- 1. Struts2 2.0.x版處理未知動作
- 2. 在Rails 3中處理多步「新」動作的RESTful方法
- 3. Rails 3:未知屬性
- 4. Rails 3中的異常處理3
- 5. 在rails 3中處理jsonp控制器
- 6. 在Rails 3中捕獲未知的動作以進行自定義404
- 7. 在Tensorflow中處理未知尺寸
- 8. Rails 3,處理ajax響應
- 9. Rails 5 - Resque未處理入隊作業
- 10. 作爲文件的警報通知在rails中處理
- 11. 處理Rails中的精確單元3
- 12. 在MVC中有效地處理未知的控制器操作
- 13. 處理未知請求
- 14. 處理未知字符
- 15. 如何在rails 3中處理Geokit :: Geocode :: GeocodeError 3
- 16. 處理MVC 3佈局動作
- 17. Rails 3,未知驗證器:'EmailValidator'
- 18. Rails 3 ArgumentError:未知的鍵:begin_date
- 19. Rails 3,黃瓜「未知屬性」
- 20. Rails 3通知
- 21. 未知/未處理的數據類型
- 22. Rails 3:延遲工作,方法'延遲'未知
- 23. 未知屬性錯誤在Rails 3箇中嵌套模型
- 24. Python多處理池未啓動作業
- 25. Rails 3 + angularjs +縮小在生產中不起作用:未知提供者:eProvider
- 26. 在Rails中動作特定的異常處理程序HTML
- 27. 未處理Android處理程序操作
- 28. 如何處理未處理在node.js中
- 29. Rails 3和SQLite - 處理異常
- 30. Rails 3:處理隱私功能
我明白了。謝謝! +1 – Ben