Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
37
Help us understand the problem. What is going on with this article?
@techpit-jp

【初心者向け】MVCの全体像をざっくり理解する

概要

MVCとは、モデル(データを扱う部分)・ビュー(ユーザーインターフェイス)・コントローラー(ユーザーからの要求を処理し、モデルとビューへの命令に変換する)の3つを頭文字にとったものです。

MVCを理解するには、実際にRailsで一通りコードを書いて流れをつかむことで理解できます。

ですが、コードを書く前にMVCがどんなものか簡単でいいので雰囲気をつかむために、本記事を執筆しました。

他にもプログラミング学習に役立つような情報を発信しています!
アカウントをフォローしてお待ちください!

リクエストとレスポンス

ユーザーがブラウザからウェブサイトにアクセスしたとき、ブラウザからリクエストがWebサーバーに送信されます。Webサーバーは送信されたリクエストに対応するレスポンスをクライアント側のブラウザに送信します。これが基本的なウェブサイトの仕組みです。

image

ルーティングとコントローラー

リクエストに対応するレスポンスを返すためにRailsでは、ルーティング・コントローラー・ビューという順番で処理を行います。

ユーザーからのリクエストはURLとして届きます。届いたURLから、どのコントローラーのどのアクションを実行するか判断するのがルーティングになります。ファイル名でいうと、config/routes.rbにあたります。

image

モデル

リクエストが保存しているデータを取得したいときや、新しいデータを保存したいとき、データベースとのやり取りが発生します。ユーザーから呼び出されたアクションは、モデルを介して、データベースとのやり取りを行い、データを取得したり新しいデータを保存したりします。

image

Railsでは、データベースのテーブル毎にモデルが用意されています。

ビュー

モデルを介して取得したデータをビューに渡します。ビューは渡されたデータを使ってHTMLを作成しコントローラーに返します。HTMLを受け取ったコントローラーはそのデータをブラウザに返します。

image

以上がRailsアプリケーションがリクエストを受けた時の処理の流れです。MVCがどんなものか雰囲気は掴めたと思います。次のパートから実際にコードを書いていくので、その際に少しづつMVCを理解して行きましょう。

本記事はTechpitの教材【Ruby on Rails 6】Instagram風簡易SNSアプリを作ってみよう!を一部修正したものです。

37
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
techpit-jp
CtoCプログラミング学習プラットフォームTechpit(テックピット)の公式アカウントです。 プログラミング学習に役立つ情報を発信しています。
techpit
現役エンジニアが執筆した教材で『作りながら』プログラミングを学ぶことができる学習プラットフォームです。基礎構文を学ぶだけでなく、プロダクトづくりを通して実践的な内容を学べるような教材を揃えています。執筆していただけるエンジニアの方も募集しております。 https://author.techpit.jp/

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
37
Help us understand the problem. What is going on with this article?