提交 e469e9df 编写于 作者: M Matthew Draper 提交者: GitHub

Merge pull request #29631 from kamipo/should_be_clear_association_ids

Should be clear `@association_ids` when joined newly associated record
......@@ -66,6 +66,7 @@ def ids_writer(ids)
def reset
super
@target = []
@association_ids = nil
end
def find(*args)
......@@ -355,7 +356,10 @@ def _create_record(attributes, raise = false, &block)
transaction do
add_to_target(build_record(attributes)) do |record|
yield(record) if block_given?
insert_record(record, true, raise) { @_was_loaded = loaded? }
insert_record(record, true, raise) {
@_was_loaded = loaded?
@association_ids = nil
}
end
end
end
......@@ -428,7 +432,12 @@ def concat_records(records, raise = false)
records.each do |record|
raise_on_type_mismatch!(record)
add_to_target(record) do
result &&= insert_record(record, true, raise) { @_was_loaded = loaded? } unless owner.new_record?
unless owner.new_record?
result &&= insert_record(record, true, raise) {
@_was_loaded = loaded?
@association_ids = nil
}
end
end
end
......
......@@ -2558,6 +2558,11 @@ def test_ids_reader_memoization
assert_equal [bulb.id], car.bulb_ids
assert_no_queries { car.bulb_ids }
bulb2 = car.bulbs.create!
assert_equal [bulb.id, bulb2.id], car.bulb_ids
assert_no_queries { car.bulb_ids }
end
def test_loading_association_in_validate_callback_doesnt_affect_persistence
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册