質問: Railsアプリケーションのコントローラ コントローラーの目的は、モデルを操作してビューを更新するアクションを提供することですか? 1つのモデルには、それを操作するメソッドを提供するコントローラが1つだけありますか?または、1つのコントローラに複数のモデルのメソッドがありますか? 私が見つけたすべての記事は、コントローラーが「ここではビジネスロジックを置く」という意味であり、複数のコントローラーに分割するとき、それが何であるか、それが属するものではありません。 誰か説明していただけますか?
回答: コントローラはビューとモデルをバインドするアクションを提供し、*プレゼンテーションロジック/アプリケーションロジック*を含む*ビジネスロジック*を含むべきではありません。一般に、MVCは*ビュー* - 組織化アーキテクチャのパターンであり、ビジネスロジックレイヤー/データアクセスレイヤー/サービスレイヤーなどの組織化のためのさまざまなパターン/アプローチがあります(これはMVCの用語では隠れたモデルです) 。 MVCパターンは、モデルをどのように整理するかを教えてくれません。モデルにはビジネスロジックを含める必要があるだけです。このため、モデルとコントローラの間に1対1の関係を構築する必要はありませんが、実際にはシステム設計とアプリケーションロジックに依存します。 **更新** モデルには、知識の領域(ビジネスロジック)に常に当てはまるロジックが含まれ、コントローラには、アプリケーションの一部(アプリケーションロジック、プレゼンテーションロジック)に固有のロジックが含まれます。コントローラは通常、ユーザー入力を解析し、モデルメソッドを呼び出し、結果を準備してViewに渡します。コントローラは薄くする必要があります。モデル内のすべてのビジネスロジックを使用すると、将来容易に再利用できます。