0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RailsにおけるCRUD機能とMVC

Last updated at Posted at 2020-09-30

はじめに

初学者のアウトプット用記事です。
ご指摘していただけると幸いです。

CRUD機能とは?

システムに必要な4つの主要機能である「Create(生成)」「Read(読み取り)」「Update(更新)」「Delete(削除)」の頭文字を並べた用語

データを操作する際に必要な最低限の機能

CRUDはWEBアプリ制作する上で基本的な考え方になります。

・生成機能(Create)
・読み込み機能(Read)
・更新機能(Update)
・削除機能(Delete)

MVCとは?

UI(ユーザーインターフェース)を持つアプリケーションソフトウェアを実装するためのデザインパターンの一つ。
簡単に説明すると、自分が指定したページ(URL)はブラウザに表示されるまでに、ルーティング→コントローラー(C)→モデル(M)→ビュー(V)という順で処理が行われている。モデルは必要な時にだけ処理がされるため、必要でない時はとばす。
*Model(データ) View(画面) Controller(操作)

MVCなぜできた?

アプリを色々処理する中で画面(UI)の部分とデータを処理する部分で性質が違うのでその2つを一緒にコードを書いてしまうと複雑になってしまうので見た目を担当するView,アプリ固有のデータの処理を行うModel,ViewとModelをコントロールするControllerの役割を3つに分ける事によって管理しやすくしようという理由でMVCというフレームワークが作られた

M:Model

####データベースを操作する仕組み
Controllerからデータの追加や変更・削除の指示を受け実行します。
データベースのテーブルごとにModelが用意されている。
データベースのテーブルはモデルクラスとモデルクラスから生成されたインスタンスによって作られている。

V:View

ユーザ-に見せるインターフェイスのデザイン(ページの見た目)

app/views (アプリケーションのメインフォルダのビューフォルダに置かれる)
Viewは通常複数用意されていて、それぞれHTMLのような形になっている。そこにはRubyのコードが埋め込んであり、要求されたアクションに応じて該当のHTMLにControllerがModelから受け取ったデータを反映し、HTMLを生成する。

C:Controller

ユーザーリクエストをModelやViewと連携させる仕組み

app/controllers (アプリケーションのメインフォルダのコントローラフォルダに置かれる)
ユーザーからのリクエストを受けModelから必要な情報を受け取り、Viewによって生成されたHTMLを画面に反映させる。
ModelとViewに指示を出す司令塔のような役割。
Viewと同じく複数用意されていて、さらに1つのControllerの中に複数のアクションが用意されている。

コントローラーの中のメソッドを「アクション」と呼ぶ。
ユーザーからのリクエストに対して具体的な処理を実行するためのメソッド。

ルーティング

URLとアプリケーションを結びつける仕組み

config/routes.rb (コンフィグフォルダのルーツファイルに置かれる)
ユーザーがブラウザを経由してアクセスしたURLとコントローラーのアクションを結びつける(=処理を割り振っている)役割。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?