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つは別の記事で説明します。