在rails> 4.0.0中,生成器使用before_action
而不是before_filter
創建CRUD操作。它似乎也做同樣的事情。那麼這兩者有什麼區別?Rails 4:before_filter vs. before_action
297
A
回答
452
我們可以see在ActionController::Base
,before_action
只是爲before_filter
一個new syntax。
但是所有before_filters
語法are deprecated在的Rails 5.0,將在的Rails 5.1
26
這僅僅是一個名稱的改變被刪除。 before_action
更具體,因爲它在動作之前被執行。
58
這只是語法的差異,在Rails應用程序有CRUD,基本七項行動的名字指數,新,創建,顯示,更新,編輯,破壞 。
軌道4,5使開發者友好的過濾器行動之前之前更改語法到。前
before_action調用方法,我們聲明的行動,就像
before_action :set_event, only: [:show, :update, :destroy, :edit]
set_event是總是會調用之前節目,更新,編輯和刪除的方法。
-1
要弄清楚before_action和before_filter之間的區別,我們應該理解動作和過濾器之間的區別。
動作是您可以路由到的控制器的一種方法。 例如,您的用戶創建頁面可能會路由到UsersController#new - new是此路由中的操作。
針對控制器操作的過濾器 - 在他們之前,之後或周圍運行。 這些方法可以通過重定向或設置公用數據給控制器中的每個動作來暫停動作處理。
軌道4 - > _action
的Rails 3 - > _filter
相關問題
- 1. Minitest - 在Rails 4中測試ApplicationController before_action
- 2. rails before_action困境
- 3. 的Rails:乾涸before_action
- 4. 的Rails的before_filter
- 5. rails,模擬before_filter
- 6. Rails模型「before_filter」?
- 7. 的Rails 4.2.5:客運before_action的奇怪行爲VS的WEBrick
- 8. Global rails中的before_filter
- 9. 在Rails 4中before_action返回false做什麼?
- 10. 在rails中跳過before_filter
- 11. Rails教程:before_filter已棄用
- 12. before_filter未被稱爲rails?
- 13. Rails cancan問題與before_filter
- 14. Rails authenticate_customer before_filter Jquerymobile「error loading page」
- 15. before_filter in Rails和ajax請求
- 16. 在Rails中測試ApplicationController before_filter
- 17. rails如何實現before_filter?
- 18. Rails 3 - 驗證和:before_filter
- 19. Rails before_filter和動作識別
- 20. 棄用警告:before_filter已棄用,並將在Rails 5.1中刪除。使用before_action而不是
- 21. ``只有:```before_action`如何在Rails中工作?
- 22. Modyfying before_action
- 23. 檢測Rails中不存在的動作的before_filter
- 24. Ruby on Rails 4認證,devise vs bcrypt
- 25. 在rails中使用before_filter時重定向循環4.2
- 26. 的before_filter:的authenticate_user!除外:[:索引] /軌道4
- 27. 軌道4 before_action有時不能很好地
- 28. 控制器before_filter沒有任何作用
- 29. Rails 4 + append_view_path
- 30. Rails的:通過PARAMS到的before_filter的authenticate_user
但他們可能會考慮depracating一次鋼軌4變得穩定... – 2013-05-13 10:55:20
一方面,自嘲有感覺,但是,另一方面,在rails和ruby中有一個很好的做法,可以爲一種方法提供多個別名,以便您可以在不同意義下使用它。 – freemanoid 2013-05-13 11:04:40
在4.2中,他們並不反對,但是由於不鼓勵它從文檔中刪除。 http://edgeguides.rubyonrails.org/4_2_release_notes.html#action-pack-notable-changes – onetwopunch 2014-12-03 23:18:45