もろもろメモ
- railsのバリデーションでは、
インスタンス.errors[:attribute]
に、そのattributeに関するエラー("can't be blank"とか)を配列として格納する。モデル#save
とかだとエラーをraiseしてしまうので、確認するだけならモデル#valid?
をつかう。- Railsのモデルのバリデーションエラー errors や full_messages の使い方 - Rails Webook
- モデル.rbに記述したバリデーションだけでなく、DBのnil制約もみてくれるっぽい。
- newとbuildの違い
author.books.new
=> author_id: nilauthor.books.build
=> author_id: 1とか- createできないけどbuild&saveはできる自体が発生した。意味わからんくて悲しい。
- モデルに関して何をテストするか
- バリデーション、メソッド、scope
- それぞれについて、「起きてほしいこと」と「起きてほしくないこと」
- テストはexample or it, テストをまとめるのはdescribe or context.
- サンプルデータの作成
- フィクスチャ
- デフォルトで用意されている
- データの保存にActiveRecordをつかわない→モデルのバリデーションの対象外
- ファクトリ
- factory girl → factory bot
- フィクスチャ
git submodule
というのがあるらしい