ruto on Nostr: RailsでFooがbarsをhas_manyしているとき、 foo = Foo.build() foo.bars.build() ...
RailsでFooがbarsをhas_manyしているとき、
foo = Foo.build()
foo.bars.build()
foo.bars.to_a
としてもクエリは走らないが、
foo = Foo.build()
foo.bars.build()
foo.save!
foo.bars.to_a
とするとbarsがSELECTされる。
単純な場合はいいけど、Foo.includes(bars: :bazs}).find_or_initialize_by(...)みたいに大きな木を読み込みまたは作成して、子や孫も追加・更新して、その後別の関数で木全体を処理する、みたいなときに困る。
foo = Foo.build()
foo.bars.build()
foo.bars.to_a
としてもクエリは走らないが、
foo = Foo.build()
foo.bars.build()
foo.save!
foo.bars.to_a
とするとbarsがSELECTされる。
単純な場合はいいけど、Foo.includes(bars: :bazs}).find_or_initialize_by(...)みたいに大きな木を読み込みまたは作成して、子や孫も追加・更新して、その後別の関数で木全体を処理する、みたいなときに困る。