嚴格的REST支持者可能會說,如果您發現自己在非CRUD的控制器上定義動作,那麼您應該強烈考慮創建新資源並將您的操作定義爲新資源上的CRUD操作。觀察Rails中的RESTful路由並耦合資源模型和控制器的最佳實踐?
一個示例可能是更改模型狀態的操作 - 比如購買。在此示例中,您可以創建CompletePurchasesController並使用create操作將購買的狀態更新爲完成,而不是在PurchaseController上定義「完成」操作。
假設上述情況,您顯然不會直接將PurchaseState保存到數據庫。
我的問題是您何時將控制器與模型耦合?你什麼時候定義一個PurchaseState模型(不是持久的),以及什麼時候直接使用Purchase。
這是一個複雜性問題,以及您在控制器操作中與之交互的鬆散關聯模型的數量?