モデルとデータベース
モデルとは
モデルは、データベースにアクセスするための機能を担当しています。
app/models以下のモデル名.rbというファイルが対象となります。
データベースとモデルの関係性
データベースはデータの入れ物ですが、そこにデータを入れたり取り出したりするためには、SQLと言われる言語でアクセスする必要があります。
モデルはデータベースとのやり取りを簡潔にしてくれるため、このSQLを使うことなくデータを利用することが出来ます。
モデルの作成
データベースとやり取りをする部分である「モデル」を作成していきます。
「Post」という名前の「モデル」を作成していきます。
実際にモデルを作成する際のコマンドは以下のとおりです。
今回は「Post」という名前のモデルを作成します
と入力します。
実行すると以下のメッセージが流れます。create ~~と書いてあるのが、このコマンドによって生成されたファイルです。
ここで作成されたファイルのうち、大事なものは
・app/models/post.rb
・db/migrate/(作成した日付時間)_create_posts.rb
この二つです。以下、二つ目のマイグレーションファイルについて解説していきます。
マイグレーションファイルとは
マイグレーションファイルは、テーブルの設計図です。
このファイルに記載されている内容でテーブルの列、名前(テーブル名、カラム名)が決まります。
ファイル名を見ると、create_postsと書いてあると思います。postsと書かれている部分はテーブル名になります。コマンド実行時にはPostと単数形でしたが、テーブル名はモデル名の複数形となります。このように、Railsでは命名規則が厳密に決められています。
テーブルとモデルの結びつきは、名前で決定する
情報は、テーブルに保存されます。テーブルに保存された情報を引き出すのは、そのテーブルに対応するモデルとなります。テーブルとモデルの関連付けは名前によって決定します。
モデルの命名規則
Railsでは、ファイルやテーブルなどの命名を規則に従った形にする必要があります。モデルとテーブルに関する命名規則は以下のようになっており、これに従えばテーブルとモデルが結びつきます。
種類 | 概要 | 名前例 |
---|---|---|
モデル名 | 先頭大文字、単数形 | Post |
モデルのファイル名 | 先頭小文字、単数形 | post.rb |
テーブル名 | 先頭小文字、複数形 | posts |
マイグレーションファイルの編集
では早速、設計図にテーブルの内容を書いていきましょう。
設計図の書式は以下のとおりです。
create_tableという処理の do ~ end 内に書き込むことによってカラムを定義できます。
t.データ型名 :カラム名
とします。
・title(タイトル)
・body(本文)
この二つのカラムを定義します。どちらも文字列を保存したいので、カラムのデータ型はstring
マイグレーションを利用して、データベースへ反映
ここまでの記述でテーブルの設計図が完成しました。
設計図は完成しましたが、まだテーブルは作られていません。設計図からテーブルを作成しなくてはなりません。
以下のコマンドを実行してください。マイグレーションファイル(設計図)からテーブルを作成するコマンドです
データベースに「posts」という名前のテーブルが作成されます。
あとは、機能を作っていくだけです
__________
xoxo ( `ー´)ノ