Life is beautiful: Ruby on Railsの「えせMVC」の弊害
Modelの外部インターフェイスの設計においてもっとも大切なことは、この「データの整合性」の責任を100%Model側で引き受け、「Controllerが何をしてもデータの整合性だけは絶対に壊れない」ように作っておくことである。そのためには、上の例の「手持ちの現金の増減を記
録したテーブル」へのControllerによる直接のアクセスは絶対禁物である。Controllerが出来る事は「何をいくらで売ったか」を
Modelに報告するだけで、その情報に基づいてデータベースに適切な変更を加えるのはModelの役割である。