ihatov08 blog

プログラミング初心者だけどRailsとSwiftマスターします

RailsのMVC

kobito.1456232222.934495.png

1ブラウザは/usersというURLへのリクエストを発行する。 2Railsは/usersをUsersコントローラ内のindexアクションに割り当てる (ルーティング)。 indexアクションはUserモデルに「すべてのユーザーを取り出せ」と指示する (User.all)。 Userモデルはすべてのユーザーをデータベースから取り出す。 Userモデルはユーザーの一覧をコントローラに返す。 コントローラはユーザーの一覧を@users変数に保存し、indexビューに渡す。 ビューは、その中に埋め込まれているRubyを使用してHTMLを生成する。 コントローラは、生成されたHTMLをブラウザに返す。

ビューはその内容をHTMLに変換し(7)、コントローラーがブラウザにHTMLを送信して、ブラウザでHTMLが表示されます(8)。

M モデル →

リクエストが例えば登録済みのデータがみたいといったものや、新しいデータを格納して欲しいといったものの場合、データベースとのやり取りが発生します。Railsアプリケーションの場合、使用しているデータベースのテーブル毎にモデルが用意されています。利用者からのリクエストで呼び出されたアクションは、モデルを介してデータベースとのやり取りを行い、データを取得したり新しいデータを格納したりします。

V ビュー →モデルを介して取得したデータを受け渡し用の変数にセットしビューを呼び出します。ビューは変数を介して渡されたデータを使ってHTML文書を作成しコントローラへ返す。

C コントローラー → Railsプログラミングを行う上で、まず基点となるのはコントローラクラスです。コントローラクラスはModel - View - ControllerのうちControllerを担うコンポーネントで、個々のリクエストに応じた処理を行います。ビジネスロジック(Model)を呼び出すのも、その結果を出力(View)に引き渡すのも、コントローラクラスの役割です。コントローラクラスとは、リクエストの受信からレスポンスの送信までを一手に担う、Railsアプリケーションの中核とも言える存在。