簡體   English   中英

為什么控制器操作應該調用一個模型方法而不是初始查找或新的?

[英]Why controller action should call one model method other than an initial find or new?

我的模型中的函數幾乎都有“共享”語句。 問題是我得到以下錯誤,當我需要在我的控制器中使用多個這些函數時:

控制器操作應該調用除初始查找或新查詢之外的一種模型方法

並且IDE更深入地解釋:

如果控制器操作在初始.find或.new之后包含多個模型方法調用,則此檢查會發出警告。 建議您在模型類中實現所有業務邏輯,並使用單個方法來訪問它。

這是否意味着所有邏輯都應該放在更復雜的模型函數中? 我認為控制器的工作是調用模型函數並將結果傳遞給視圖。

如果我將模型函數代碼放回控制器,一切都會工作,但我會在所有控制器操作中得到代碼重復。

那么,這里的正確方法是什么?

警告消息確實意味着邏輯應該放在單個模型函數中,但不一定是更復雜的函數。 為避免模型重復和/或“胖模型”問題,您可能需要引入模型所依賴的其他類。

是的,控件的工作是調用模型函數,但僅作為薄單板,根據初始創建/查找之外的每個控制器操作的一個模型函數的檢查指南。

如果你重新移動函數,我不確定你理解你在控制器中獲取代碼重復的評論,因為你總是可以在控制器級別引入共享函數。 但同樣,這不是“瘦控制器”和“合理瘦身模型”的推薦方法,而是根據需要提供支持類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM