MVCモデルとは?
Railsを理解する上で重要になる考え方。
M=モデル
V=ビュー
C=コントローラ
図にすると下記の通り
※ただし、「④モデル」に関してはデータベースとのやり取りがない場合は不要
図の用語を見ていくと・・・
ルーティング(/config/routes.rb)
・ブラウザとコントローラをつなぐ役割
・ユーザーがブラウザ経由でRailsで作成したサービスにアクセスすると、ルーティングが受け取ったURLを分析し、「どのコントローラのどのアクションを実行するか」を判別し、適切なコントローラのアクションを呼び出す。
つまり・・・対応表。
get "URL" => "コントローラ名"#"アクション名"
コントローラ(controllersフォルダ内に複数存在)
・コントローラ内のメソッドのことをアクションという
・アクションの役割:ブラウザに返すビューをviewsフォルダの中から見つけ出す役割
(コントローラと同名のビューフォルダから、アクションと同名のHTMLファイルを探してブラウザに返す)
データベースとモデル
【データベース】
・データベース→表(=テーブル)で管理
・テーブルの列をカラム、行をレコードという
【モデル】
・ApplicationRecordを継承したクラスをモデルという
class Post < Application #Post部分は単数形
end
・モデルは、データベースから情報を取り出したり、逆にデータベースに情報を格納したり、データベースとのやり取りを行う
・Railsにおいては、使用しているデータベースのテーブル毎にモデルが用意されている
(=モデルはデータベースのテーブルに対応するクラス)
# 下記コマンドを実行する
rails generate model モデル名 #「rails generate」は「rails g」に省略可
# => app/modelsフォルダに、「モデル名.rb」というファイルが作成
# 例
rails g model post
# => app/models/post.rbが作成。
# => データベースにPostsテーブルが作成(テーブルは複数形になる!)
ビュー
ページの見た目を作るためのHTMLファイル。
ちなみに・・・CSSファイルはapp/assets/stylesheetsフォルダ内に。
画像ファイルはpublicフォルダ内にある