我想知道爲什麼有人應該在控制器內使用helper_method來創建一個幫助器方法,而不是創建幫助器文件中的「常規」方法。那有什麼優點和缺點?控制器helper_method
43
A
回答
81
helper_method
當功能是控制器和視圖之間使用的功能時很有用。一個很好的例子就像current_user
。
如果該方法更多地處理控制器邏輯而不是格式化,那麼它屬於控制器。類似於current_user
將會在所有控制器之間共享,因此應該在ApplicationController
中定義。
真正的「幫手」方法處理視圖並處理諸如格式化和模板邏輯之類的事情。這些在控制器中很少需要,它們屬於app/helper下的模塊。您可以在需要時將這些內容包含在控制器中,但最終會爲您的控制器提供整個模塊的視圖幫助器方法。
14
共享控制器之間的方法,並查看您有幾種選擇:
- 使用view_context http://apidock.com/rails/AbstractController/Rendering/view_context
- 在控制器把它定義和提供鑑於由是helper_method類方法http://apidock.com/rails/ActionController/Helpers/ClassMethods/helper_method
- 在定義它共享模塊幷包含/擴展
相關問題
- 1. 在幫助器中的控制器中定義的訪問helper_method
- 2. 控制器在是helper_method未示出on Rails的
- 3. Rails的:使用從一個控制器是helper_method在另一個
- 4. helper_method對rails中的所有視圖都可用後控制器中的方法
- 5. 訪問是helper_method
- 6. Rails 3 helper_method
- 7. 將變量傳遞給'helper_method'
- 8. 幫手和helper_method做什麼?
- 9. 帶參數的Rails helper_method
- 10. 渲染從是helper_method局部
- 11. 由控制器名獲取控制器
- 12. WEB API控制器與MVC控制器
- 13. 角控制器和路由控制器
- 14. 服務器控制服務器控制
- 15. CakePHP - 控制器還是無控制器?
- 16. UISplitView控制器+ TabBar控制器+ iPad
- 17. Laravel控制器結構和控制器
- 18. 呼叫控制器從控制器
- 19. UICollectionview控制器到UItableview控制器
- 20. Laravel 5控制器返回控制器
- 21. 控制器內部的AngularJS控制器
- 22. angularJS:控制器之間的控制器
- 23. Nodejs將控制器導入控制器
- 24. 將控制器控制重定向到子控制器
- 25. 定製控制器
- 26. 差異betweeen控制器:: handleAction(),控制器::的handleRequest(),控制器:: allowed_actions和控制器:: url_handlers
- 27. getServiceLocator()控制器
- 28. 在控制器
- 29. Leaner控制器
- 30. 從控制器