4
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 1 year has passed since last update.

Rails MVCモデルとは何か

Posted at

結論

アプリケーション設定を整理するための概念。

この概念に基づいてアプリ制作を行うことで、開発がしやすくなったり保守性が高くなったりします。

Q:開発がしやすい?

A:プログラムを書き込む場所がルール化されているので作業が早くなる。

例えば夕飯を用意してください。と指示されるよりもカレーを作ってください、ただし人参は抜きなさいとルールが決められている方が動きやすいのです。

Q:保守性が高い?

A:メンテナンスのしやすさのこと

つまり、こういう考え方で作ると安全で壊れにくいアプリケーション作りやすいよってことです。

ちなみに

Model View Controller の頭文字です。
それぞれ役割が分かれていて、どこに何のプログラムを書くか決まっています。

M: 模型、型

V: 光景、眺め

C: 支配者、制御装置

Modelの役割

データベース操作に関わる処理を作る

商品情報や、顧客情報のデータを扱うデータベース(db)のデータ操作をするためのプログラムを作る。

例:個人情報に関するデータや自己紹介メソッドを定義する

app/model/user.rb
class User
  def initialize    #インスタンスが生成される段階で実行される処理
    @name = "Kuramoto30"
    @birthday = "1994/1/3"
    @age = 28
    @hobby = "Food"
  end

  def introduce
    <<~EOS

    私の名前は#{@name}です。
    誕生日は#{@birthday}で、年齢は#{@age}歳。
    趣味は#{@hobby}です。

    EOS
  end
end

このデータはコントローラーへ渡されます。

Controller

ModelとViewの橋渡しとなる処理を作る

app/controllers/homes_controllers.rb
     #HomesControllerはApplicationControllerを継承する
class HomesController < ApplicationController 
  #一覧アクション
  def index
    user = User.new     #userモデルをインスタンス化しuserへ格納
    @my_introduce = user.introduce #userのintroduceメソッドを呼び出し@my_introduceへ格納
  end
end

Modelから受け取ったデータを扱えるようにインスタンス変数に格納しています。
インスタンス変数をViewで扱うことでModelのデータを受け渡すことができます。

Viewの役割

コントローラーからモデルのデータ(インスタンス変数を参照する形)を受け取り、表示する処理を作る

app/views/homes/index.html.erb
<%= @my_introduce %>

以上です。全体像を大まかに捉えながら、一緒に頑張りましょう。

4
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
4
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?