マークダウンで記述します。
自分の勉強用でメモします。
初学者の方は参考にしてください。
以下のようなテーブルを作成したとします。
##usersテーブル
Column | Type | Options |
---|---|---|
name | string | null: false, add_index: true |
string | null: false, unique: true | |
password | string | null: false |
password confirmation | string | null: false |
##意味を下記に記述した。
↓↓したのusersテーブルはテーブル名を記述する。
usersテーブル これはコメントアウトする。
↓↓ここはテンプレートで大丈夫です。
Column | Type | Options |
---|
##|❶name|❷string|❸null: false, ❹add_index: true|
##❶name
❶nameはカラム名。
そのカラムの名前。
❷string
❷stringはデータ型です。
種類は以下のようにあります。
string 文字列型
text テキスト(不定長文字列)型
integer 整数型
float 浮動小数点数型
decimal 固定長整数型
datetime 日時型
timestamp タイムスタンプ型
time 時刻型
date 日付型
binary バイナリ文字列型
boolean 真偽値型
references 他のテーブルへの外部キーの定義、_id が付いた整数などがあります。
##❸null: false
❸null: false カラムにnullを許可しない
カラムのオプションです!!
NULLとは(空の値)のこと。
(null false制約など)
以下があります。
❹Usersテーブルのnameカラムにindexを張ることで、アルファベット順にnameを並べ替え検索しやすいようにしてくれます。
null: false カラムにnullを許可しない
unique: true カラムに同じ値を許可しない
foreign_key: true 他のテーブルへの外部キー制約をつける indexも自動付与
default: "oooooo" カラムに値が設定されなかった場合にデフォルトで格納される値を設定。
limit: 50 データ型の最大幅を指定。
対象となるデータ型は文字列タイプはstring型とtext型の2つ、数値タイプはinteger型とbinary型の2つ。
precision: 10, scale: 5 指定することで精度(最大桁数)とスケール(小数点以下の桁数)を指定。
対象となるデータ型は文字列タイプはdecimal型。
##以下同様です。
|❶email|❷string|❸null: false, ❹unique: true|
❶email=カラム名
❷string=文字列型
❸null: false=カラムにnullを許可しない
NULLとは(空の値)空欄のこと!!!
❹unique: true=同じアドレスはダメということ。
##アソシエーション
対象を1つ持っているなら、has_one
has_oneは自分のテーブルが対象テーブルを1つ持っている(複数持たない)場合に使います。対象テーブル側に自分のidのカラムがある場合に使います。
対象を複数持っているなら、has_many
has_manyは自分のテーブルが対象テーブルを複数もつ場合に使います。対象テーブル側に自分のidのカラムがある場合に使います。
自分が対象に所属しているなら、belongs_to
belongs_toは、自分のテーブルが対象テーブルのレコードに所属する(対象テーブルのidカラムがある)場合に使います。