MVC

f:id:kokorouruou:20210718183118p:plain

私が作成しているアプリケーション「Yamashiru」を受けて気になった点や復習した方が今後の役に立つと思って作成しています。

さらにエンジニア初心者の方に向けて タメになる情報をお届けします。

今回は、、、

MVC

基礎中の基礎ですが、アプリケーションを作成する際に常に頭でイメージしておかないと上手く記述が繋がらず、実装したい機能が反映しないことも多々あります。今のうちに言語化しておきましょう。

MVCの仕組み

MVCとは、プログラミング手法のアプローチの一種でRuby on Railsでも採用されています。 Webアプリケーションを動かすために必要な処理の一部を分類し分けることで、保守性、可読性の高いコードを維持できます。 「V」はViewの略。実際にクライアント側に表示される見た目の部分です。 「M」はModelの略。Webアプリケーションにおけるビジネスロジック(データベースから取得してきた値を加工するメソッドや、レコード検索の条件が書かれたメソッド、データを保存する前に加工するメソッドなど)を定義します。 「C」はControllerの略。クライアントからのリクエストに対して適切なレスポンスを返すことや、そのレスポンスに必要なデータの用意を行う。あくまでも用意するだけが責務なので、データの加工など複雑なロジックはControllerには書きません。

モデルの作成

% rails g model モデル名

テーブルの作成

モデルを生成時に作られるマイグレーションファイルを修正。テーブルに作成するカラムとその型を、changeというメソッドの中で指定します。

<中略>
def change
    create_table :tweets do |t|
      t.string :name
      t.string :text
<中略>

マイグレーションを実行。(=テーブルの作成)

% rails db:migrate

ルーティングを設定

Ruby on Railsには、アクションの設定が慣習的に決められており、下記の表のようなアクションが存在します。

7つのアクション
index         一覧表示
show          詳細表示
new           生成
create        保存
edit          編集
update        更新
destroy       削除

resourcesメソッドを使って7つのアクションへルーティングを自動生成します。

Rails.application.routes.draw do
  resources :tweets
end

コントローラーの作成

% rails g controller コントローラー名

コントローラーを作成するとき、コントローラー名は複数形で命名する。

コントローラーにアクションを定義

class TweetsController < ApplicationController
  def index
    @tweets = Tweet.all
  end
end

一例ですが、こちらはtweetsテーブルのレコードを全て代入しています。

ビューの作成

viewsディレクトリを活用しながら様々なレイアウトを作成することがで出来ます。

いかがでしたでしょうか? 1個ずつ落ち着いて実施出来れば簡単な操作になりますので是非ご活用下さい!