8/14
-
null: falseとはNOT NULL制約と呼ばれるもので、指定したカラムが空(NULL)の状態でテーブル内に保存されることを許可しないというものです。
- tweetsテーブルにとっての1ツイート、usersテーブルにとっての1ユーザー、つまり、テーブルに保存されるレコード1つの情報のことを
リソース
と呼ぶ - resouces メソッドを使うことで、
book
というリソースに対して、基本となる7つのアクションをリクエストするルーティングが設定できる - 7つのActionとは、show, new, create, delete, index, edit, update
- ルーティングのネストとは
ネスト
とは入れ子構造とも呼ばれ、ある記述の中に入れ子構造で別の記述をする方法。
ルーティングでいうと、あるコントローラへのルーティングの記述の中に、別のコントローラへのルーティングを記述するということを指す。- model と対応しているコントローラーは必ず複数形でかく
- ストロングパラメータを指定しないと不正な情報を受け取ってしまう可能性がある
- User has many tweets → user.tweets → many tweets抽出
- Tweet belongs to user → tweet.user → 属してるuserをゲット
- アソシエーションは直感的にかけて便利やなー
- include method を使うことで、SQLへの発行回数を減らすことができる
- indexアクション1回でn個のツイートが呼び出されており、その一個一個のツイートごとにニックネームを記載したいから、そのツイートに属するuserをn回, SQLを発行して取得している
- indexアクション1回でn個のツイートを呼び出す時に、userの情報も一緒に取り出してもらえれば、SQL の発行回数は1回で済む
- その時に使うメソッドがinclude method
- n+1問題は、厳密に言えば(時系列順で言えば)1+n問題であり、includeメソッドを使うことで1+n回を1回にできる。