厳格な REST 支持者は、CRUD ではないコントローラーでアクションを定義している場合は、新しいリソースを作成し、そのアクションを新しいリソースでの CRUD 操作として定義することを強く検討する必要があると言うかもしれません。
例として、モデルの状態を変更する操作 (購入など) が挙げられます。この例では、PurchaseController で「完了」アクションを定義する代わりに、CompletePurchasesController を作成し、作成アクションを使用して購入の状態を完了に更新することができます。
上記を仮定すると、明らかに PurchaseState をデータベースに直接永続化することはありません。
私の質問は、コントローラーをモデルに結合するのはいつですか? PurchaseState モデル (永続化されていない) を定義するのはいつで、単純に Purchase を直接操作するのはいつですか。
複雑さと、コントローラーのアクションで対話している疎に関連付けられたモデルの数の問題ですか?