Railsのアソシエーションに設定できるオプション「dependent: :nullify」

こんにちは!kossyです!



さて、今回は、Railsでアソシエーションを組むときに、オプションとして設定できる
「dependent: :nullify」の使い方をブログに残してみたいと思います。





定義は簡単

User has_many Posts

という関連があるとします。

その時のアソシエーションの定義としては、

has_many :posts

と書くと思います。

ここで、「Userのデータを削除してもUserが持っていたPostsの情報は残したい」

というときに使うのが、「dependent: :nullify」です。

has_many :posts, dependent: :nullify

こうすることによって、Userの削除時に、Userが持っていたPostsのuser_idがnullの状態でDBに残ります。



関連先のデータを残したいシチュエーションがあれば使えそうです。