has_manyで子モデルが存在するときに,削除できないようなvalidationを入れたくて、調べたメモです。
has_manyのオプション
dependentオプションを使います。
- 親モデルが削除されたとき、ひもづく子モデルがある場合、例外を発生させる
=>dependent: :restrict_with_exception
今回はこれを使いました! - 親モデルが削除されたとき、ひもづく子モデルがある場合、エラーを発生させる
=> dependent: :restrict_with_error - 親モデルが削除されたとき、ひもづく子モデルが同時にdestroyされる
=> dependent: :destroy - 親モデルが削除されたとき、ひもづく子モデルがdatabaseから直接削除される。よって、コールバックは発生しない。
=> dependent: :delete_all - 親モデルが削除されたとき、ひもづく子モデルの外部キーをnullにする
=> dependent: :nullify
コメントを残す