Skip to content

Commit

Permalink
Merge pull request #43445 from jstncarvalho/main
Browse files Browse the repository at this point in the history
fix: duplicate active record objects on inverse_of
  • Loading branch information
tenderlove committed Oct 13, 2021
1 parent 9e6b1af commit fd3b6b8
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
Expand Up @@ -461,6 +461,10 @@ def replace_on_target(record, skip_callbacks, replace:, inversing: false)

yield(record) if block_given?

if !index && @replaced_or_added_targets.include?(record)
index = @target.index(record)
end

@replaced_or_added_targets << record if inversing || index || record.new_record?

if index
Expand Down
Expand Up @@ -721,6 +721,15 @@ def test_with_has_many_inversing_does_not_trigger_association_callbacks_on_set_w
end
end

def test_with_hash_many_inversing_does_not_add_duplicate_associated_objects
with_has_many_inversing(Interest) do
human = Human.new
interest = Interest.new(human: human)
human.interests << interest
assert_equal 1, human.interests.size
end
end

def test_unscope_does_not_set_inverse_when_incorrect
interest = interests(:trainspotting)
human = interest.human
Expand Down

0 comments on commit fd3b6b8

Please sign in to comment.