Rails使用MVC範例。它在模型,視圖和控制器中很有趣,實際上只有控制器有'應用程序'或父控制器。實際上在rails中有一個application_helper,但它確實沒有太大的作用。有什麼要點只有一個application_controller作爲模型和實踐助手沒有父母?MVC範例。爲什麼只有application_controller?
回答
模型有一個父親ActiveRecord :: Base ApplicationController在那裏,因爲它太常見了,看不到應用程序範圍的過濾器,您需要在Web應用程序中進行身份驗證/授權等。應用程序助手再次提供了輔助方法在整個應用程序中使用,超出了一個控制器的範圍。
我認爲活動::記錄是一個比父母混合更多,雖然它從它繼承。 – s84
模型是內聚的,應該是MVC框架中最獨立的實體。在這種情況下,比較模型與控制器並不好。
幫手是支持視圖的東西。例如,您最終可能會在視圖內寫入一些實際的rails代碼,這些代碼可能在不同的視圖中可重用。對於這些情況,幫手將前來救援。
和控制器是必須在視圖和底層模型之間理想地說話的那些控制器。擁有所有控制器的父級,應用程序控制器來執行此操作是合乎邏輯的。
並且Rails MVC框架中的所有類都有一個父類--ActiveRecord :: Base是模型的父類,ActionController :: Base是控制器的父類。由於助手是用於視圖的,他們至少沒有明確的父級。
一般MVC的,而不是專門談到導軌:
通用控制器是有益的,因爲說,常用於所有控制器的通用處理,其具體的控制器之前執行。這同樣適用於模型,因爲模型可能會受益於一些通用屬性。這通常可以通過繼承來更好地完成,其中您的模型繼承了「應用程序模型」。
這就是爲什麼你看到通用控制器,但不是模型。在模型中已經有了獲取泛型行爲的手段,但控制器並不是這種情況。
- 1. 爲什麼只有一個HTTPClient實例?
- 2. 爲什麼IOC的例子只有OneInterface:OneClass比例?
- 3. 只有Spring-MVC需要什麼jar包?
- 4. 爲什麼Asp.net mvc中的嵌套窗體沒有範圍?
- 5. MVC爲什麼只有匿名類型通過?
- 6. 遵循MVC範例,正確的方法是什麼?
- 7. 爲什麼我每頁只能有一個Silverlight UserControl實例?
- 8. Css顏色(例如#999) - 爲什麼只有三位數字?
- 9. 爲什麼只有1024個字節中的SocketServer例如
- 10. 爲什麼有時只有工作?
- 11. 只有已實例化的範圍
- 12. 沒有路由匹配錯誤application_controller規範
- 13. 爲什麼指令有範圍?
- 14. 爲什麼不Server.Transfer爲什麼只有Response.Redirect
- 15. MVC爲什麼RouteData爲空?
- 16. 爲什麼模擬器只有12行?
- 17. 爲什麼java.lang.Long中只有63位(MAX_VALUE)?
- 18. 爲什麼返回值只有南?
- 19. 爲什麼只有std :: list :: sort()?
- 20. 爲什麼只有當我使用mutableCopy
- 21. 爲什麼只有字符串視圖?
- 22. 爲什麼只有一個代表?
- 23. 爲什麼只有四個寄存器?
- 24. 爲什麼數字類型只有`to_string()`?
- 25. 爲什麼只有右手顯示?
- 26. 爲什麼operator []只有一個參數?
- 27. 爲什麼只有debian返回127.0.0.1
- 28. 爲什麼只有setDeleteAction和setUpdateAction?
- 29. 爲什麼只有25人發帖?
- 30. 爲什麼只有Matrix3x2和Matrix4x4?
有趣的辯論發起,+1 – apneadiving