見出し画像

0801-02 プログラミングRuby on Rails2周目

MVCとは
MVCはアーキテクチャといわれるものの一つです。アーキテクチャとは「設計」のことで、プログラムを見やすく、機能の追加や変更がしやすい構成にするための考え方です。
高機能なアプリケーションを作るためには膨大なファイルを扱う必要があります。そのため設計のルールを決めておかないと、すぐに管理しきれなくなってしまうのです。

MVCは、アプリ全体をM(モデル)、V(ビュー)、C(コントローラー)の3つの機能に分類する考え方です。ここでは、MVCがそれぞれどういった役割を持つのか簡単に確認しておきましょう。後のレッスンで、それぞれの機能について詳しく確認します。

ビューとは
MVCの中で、ビューが一番イメージしやすい機能です。文字通り、アプリの見た目部分を担当します。
ブラウザに表示させるHTMLの組み立てを行います。

モデルとは
モデルは、主にデータベースとの連携を担当します。本来、データベースとのやりとりにはSQL文という独自の言語を使用する必要があります。モデルは、開発者がSQL文を使わず容易に読み書きができる機能を提供してくれます。

コントローラーとは
コントローラーは、ビューとモデルを仲介する役割があります。ユーザーからの入力に従って、モデルに対してデータの取得を依頼したり、ビューに対してHTMLの作成を依頼するなど司令塔のような役割を果たします。

ルーティングについて
図の一番左にルーティングと書いてありますが、これはどのようなものでしょうか。
コントローラは、モデルやビューに依頼をする司令塔でした。しかし、今見たようにコントローラーは複数用意されています。そのため、ユーザーの操作に対してどのコントローラーが動くべきか決める必要があります。

Gemとは
Railsには「Gem」と呼ばれる「ライブラリ」が用意されています。ライブラリとは、プログラムのコードをひとまとめにして再利用しやすくしたものです。

Gemには開発を効率化してくれたり、会員登録サービスが簡単にできるなど便利なものがたくさんあります。Railsアプリケーションは全てをゼロから作るのではなくGemのライブラリも利用することでより効率的に開発することができます。

Gemのインストールの方法
RailsでGemを追加するには「Gemfile」というファイルにインストールしたいGemのファイル名を追記し、「bundle install」コマンドを実行する必要があります。

「bundle install」コマンドは「bundler」と呼ばれるシステムを利用してGemをインストールするためのコマンドです。Gemfileに記述するだけではGemを使えるようになりませんので、忘れずに実行しましょう。


RailsではURLはリソースを意味する
以下のようにURLを指定したら、それはアプリに対して「tweets」というリソースの全ての情報が欲しい、という意味になります。

「(ルートパス)/users」

同様に、この入力はusers情報全てを要求していることになります。つまり、RailsではURLで「リソース」を表しており、これが「何に対して」 の部分になります。

HTTPメソッドとは
HTTPリクエストを送信するときに、サーバーに対して「情報が欲しい」「情報を追加したい」「情報を更新したい」など様々な種類の要求を行います。
そのために用意されているのがHTTPメソッドです。8種類あるうち、Railsでは以下の4つを使用します。

GET データを取得する
POST データを登録する
PATCH データを更新する
DELETE データを削除する

これらのメソッドを使って何をしたいのかを指定します。
つまり、RailsではURLとHTTPメソッドを組み合わせることで「何に対して」「何をしたいのか」を表すことができるようになっています。
なお、ブラウザのURL欄に入力した時は、HTTPメソッドGETが自動的に指定されます。

get 'tweets' => 'tweets#index'

HTTPメソッド:get         tweetsコントロールの
URL:tweet     が入力されたら  indexアクションを呼ぶ

コントローラーは「司令塔」です。
ユーザーからの要求を受け取ったら、「モデル」と「ビュー」に仕事を依頼して完了させる役割があります。
また、コントローラーの仕事は7つに分類でき、「7つのアクション」と呼ばれます。

7つのアクションの内容
index リソースの一覧表示を行う
show リソースの詳細表示を行う
new リソースの新規登録画面を表示する
create リソースの追加を行う
edit リソースの編集画面を表示する
update リソースの更新を行う
destroy リソースの削除を行う

ERBとは
ERBはEmbedded Rubyの略で、簡単にいうとHTMLにRubyのコードや変数を埋め込める仕組みです。
以下の手順で、データベースの内容をブラウザで表示させることができます。
①ビューファイルに、「固定で表示させる文字」と「データベースの内容を埋め込む位置」を指定する。
②コントローラーのファイルで、ビューに表示させたいデータベースの内容を変数に格納する。

ビューファイルが呼ばれる仕組み
コントローラーのアクションが実行されると、その後に対応するビューファイルを自動で呼び出す仕組みになっています。
この対応関係は、ファイルの「名前」によって紐づいています。

tweetsコントローラーのindexアクションが実行されると、そのあとにtweetsフォルダのindex.html.erbが読み込まれる、というように名前でつながっています。


この記事が参加している募集

習慣にしていること

このたびは記事を読んでいただき、ありがとうございます。いただいたサポートはカフェでの勉強代や書籍購入費として、大切に使わせていただきます🌷