2012-03-13 13 views
1

Ruby on Railsでは、MVCアーキテクチャは、コントローラが要求を受け取り、モデルと通信してデータを受け取るように設計されています。コントローラはhtmlを生成するために表示するように話します。私の疑問は、htmlを生成するためにビューに直接返信するモデルを作るのではなく、なぜコントローラーに応答してからコントローラに表示するのがいいのかという疑問です。なぜそれはそのように設計されていませんでしたか?mvc architecture Ruby on rails

誰かが明確にしてもらえますか?前もって感謝します。あなたはJSONを生成する必要が

答えて

7

...モデルは直接HTMLを生成するために表示する返信...

そして、何もし明日?そしてXML?そして他の10のフォーマット?毎回モデルを更新しますか?

モデル、ビュー、コントローラには別個の責任があります。

  • モデルビジネスロジック。データを保存して読み込みます。
  • ビュー - データを特定の形式でレンダリングします。
  • コントローラー - 2つの間のメディエーター。要求を解析し、認証/許可を行い、モデルにデータを要求し、そのデータで適切なビューを呼び出します。

ビューにはビジネスロジックはなく、モデルでレンダリングする必要がありません。これは、より洗練されたコードの作成に役立ちます。

私の仮定的な例では、JSON表現のデータを表示できるビューを追加するだけです。おそらく、コントローラーに1行または2行追加することができます(しばしば必要はありません)。モデルは変更されません。その懸念事項はデータの永続性であり、データの提示ではありません。