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回にできる。