Active Recordは便利なライブラリです。Active Recordは一見すると魔法のように振る舞いますが、当然ながら実際にはRubyのコードが決められた仕様で動いています。Active Recordが実際どのように動くのかを知っていると、Active Recordが期待通り動かないエッジケースに遭遇したときのデバッグや修正に役立ちます。 今回の発表では、私が実際に遭遇した「Active Recordが期待通り動かないエッジケース」を元にActive Recordにおける関連の裏側について解説します。具体的には(1)特定のモデルをsaveしたときに関連モデルも同時にsaveされる仕組み、(2)関連のinverse_ofオプションの仕組みについて説明した上で、(1)と(2)が合わさったときに発生する想定外の挙動について詳しく説明していく予定です。 この発表を聞くことで、Active Recordの魔法の一端を理解できるようになるはずです。