ブシトラの日記

エンジニア1年生の雑多記事

Railsガイド6.0読み直す ~2章 Active Record の基礎~

https://busitora.hatenablog.com/entry/2020/08/31/093527

の続き。2章。知らないところとか見新しいものだけメモとかコメント。(特になければ空白にします)

Active Record の基礎

1 Active Recordについて

  • SQL を書かずに頼りがちで、ホントにSQL力のたりなさを実務で痛感するのは初学者あるあるだと思う、SQLは「わかりみSQLがおすすめ」
  • 設定がほとんどの場合で共通ならば、その設定をアプリケーションのデフォルトにすべきである」という考えに基づいています。→ これ、Railsがよしなにやってくれるデメリットで最初応用効きづらいよね

2 Active RecordにおけるCoC(Convention over Configuration)

f:id:busitora_ts:20200901215724p:plain

  • テーブルを複数形にせず単数形でハマった思い出

 

↑モデルは大文字、テーブルは小文字で複数形

  • STIはよくわからん

https://qiita.com/yebihara/items/9ecb838893ad99be0561

 

https://qiita.com/k5trismegistus/items/7c1e7897e163fd034d56

STI TPH(Table-per-Hierarchy)
CTI TPT(Table-Per-Type)
CCI TPC(Table-per-Concrete Class)

あたりまじ不明

3 Active Recordのモデルを作成する

4 命名ルールを上書きする

5 CRUD: データの読み書き

user = User.create(name: "David", occupation: "Code Artist")

これ、pryの時とか一旦User.newでインスタンス生成してた。いらない工程だったな。

destroy_byもあるの知らんかった

6 バリデーション(検証)

saveとupdate何が違うんだって思ったけど assign_attributes したあとにsaveしてるだけなのか!!!

https://qiita.com/luccafort/items/677020b86f3dc240529b

7 コールバック

  • 色々あるけど、全部把握しきれてないなーafter_createとかafter_updateとかはよく使う

8 マイグレーション

  • ridgepoleつかってるからrollbackとか忘れた()

感想

STIとかCTIとかCCIあたりがまじわからん(Railsではないけど)