Ruby on railsのMVCとビューの役割を知ろう!
Ruby on railsを学んでいくとビュー(View)という単語が出てきて、これって一体どういったことに使うのってなりますよね。
僕も最初にこの単語が出来てきたとき、頭の中は?だらけでした。
ここでは、ビューというものについて理解していきましょう。
もくじ
そもそもビューって何?
Ruby on railsを使っていくと絶対に出てくるビュー。
まずは、ビューというのを簡単に説明します。
分かりやすく言うと、ホームページなどでユーザーが目にする部分を作るのがビューです。
ビューは、MVCというアーキテクチャの中の一つです。機能毎に分けられていて、モデル、ビュー、コントローラーの3つがあります。
モデル、コントローラーについては、下記の記事で紹介しているので見てください。
コントローラーから渡されてきたデータを、どのように表示していくかを定義していくのがビューの仕事です。
それでは、次の項目で具体的にビューを説明していきます。
ビューの役割
前の項目でビューはこんな感じなんだなと理解したと思います。ここでは、より具体的に説明していきます。
ビューは、アプリケーションの見た目、つまり、ユーザーが見れる部分の制御を担っています。
上の図を見ながらビューについて説明したいと思います。
Rubyで作ったアプリケーションは、ユーザー側からは見える部分しか操作できないです。ビューは見た目に反映されるので、基本的にはHTMLで書かれています。
また、フォームなどでユーザーに名前やコメントなどの情報を入力して、その情報をコントローラーに送信することでデータベースに送信することも出来ます。
Ruby on railsでは、モデルを通して取得したデータを受け渡し用の変数にセットしてからビューを読み出すことが出来て、変数を介して渡されたデータを使ってHTML文章を作成しコントローラーに返します。
ビューで作成されたHTML文章を受け取ったコントローラーは、そのデータをユーザーに返すことで最終的にユーザーが見ているブラウザにHTML文章が表示されるようになります。
index.html.erbといった名前のHTMLのテンプレートがこれに当たり、変数や各種のモデルにアクセスすることで、値を画面に出力することが出来るようになります。
まとめると、ビューは与えられたデータを処理することで文章を作ることができます。
他にもそれぞれのアクションに対応できるビューが用意されているので、自動的にビューを呼び出すことでユーザーへ見える形で返します。
ビューの基本
ビューを出力する時に基本は、ERB(Embedded Ruby)テンプレートを利用するのが基本です。
ERBテンプレートは、Ruby on Rails専用のテンプレートでデフォルトの機能になります。
HTMLなどのテキスト形式で表示されるフォーマットならどれでも適用出来て、テキスト形式のフォーマットにRubyを埋め込むことが出来るのがERBです。
ERBテンプレートには、主に2つの特徴があります。
- 任意のRuby構文を埋め込めて、条件分岐や繰り返し構文等の処理が自由に記述できる。
- ビューを生成するためのビューヘルパーを利用することで、データベースから取得した値に基づいたリンクやフォーム要素等のコードをシンプルに生成できる。
まとめ
- ビューは、ユーザーに見せるページの見た目を担当している。
- モデルを介して得たデータを基にビューを生成する。
- ビューで作成したデータをコントローラーに返すことでユーザーがそのデータを見れる。
今回は、MVCの機能の1つであるビューについて説明しました。ビュー以外にもモデルとコントローラーがあるのですが、この2つは別の記事で説明します。