- 関連をたどって同じオブジェクトに返ってきた時も、別のオブジェクト扱いになっている
- Rails6 で確認
- 片方を update しても、もう片方は別のオブジェクトなので、データが古いままだったりする
以下は例
model の状態はてきとうに想像してください
book = User.books.first
# => #<Book:0x0000565441ce2b38
book.object_id
# => 65560
# てきとうに関連をたどって自分自身に戻ってくる
same_book = book.users.first.book
=# > #<Book:0x0000565440ddd048
# オブジェクトidが違う
same_book.object_id
# => 65580
# 別のインスタンスなので、たとえば片方を update しても、もう片方は古いまま
# reloadしないとデータ状態が反映されえない
# オリジナルのインスタンスの名前を更新する
book.update!(name: "わさび本")
# インスタンスの状態は新しくなる
book.name
# => "わさびの本"
# もう片方は古いまま
same_book.name
# => "からしの本"
# reload しないと DBの状態は反映されない
same_book.reload.name
# => "わさびの本"
Original by Github issue
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。