MVC
私が作成しているアプリケーション「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個ずつ落ち着いて実施出来れば簡単な操作になりますので是非ご活用下さい!