aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2018-01-11 07:18:35 +0900
committerRyuta Kamizono <kamipo@gmail.com>2018-01-11 07:31:05 +0900
commitae48c65e411e01c1045056562319666384bb1b63 (patch)
tree59560db534e4ea5ec17a3a6a00c3c2c0f8b8a3aa /activerecord/test/cases
parentf30f20ccec9edbffc2b80b2d7e839a4fa9ac1eac (diff)
parenteebcebdeb58ff7b6c05cb1cfbbc9aa4c85c9800e (diff)
downloadrails-ae48c65e411e01c1045056562319666384bb1b63.tar.gz
rails-ae48c65e411e01c1045056562319666384bb1b63.tar.bz2
rails-ae48c65e411e01c1045056562319666384bb1b63.zip
Merge pull request #23146 from piotrj/issue_18424
When deleting through records, take into account association conditions
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r--activerecord/test/cases/associations/has_many_through_associations_test.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/has_many_through_associations_test.rb b/activerecord/test/cases/associations/has_many_through_associations_test.rb
index 29de29ceb3..56a4b7c4d1 100644
--- a/activerecord/test/cases/associations/has_many_through_associations_test.rb
+++ b/activerecord/test/cases/associations/has_many_through_associations_test.rb
@@ -1308,6 +1308,25 @@ class HasManyThroughAssociationsTest < ActiveRecord::TestCase
end
end
+ def test_has_many_through_update_ids_with_conditions
+ author = Author.create!(name: "Bill")
+ category = categories(:general)
+
+ author.update(
+ special_categories_with_condition_ids: [category.id],
+ nonspecial_categories_with_condition_ids: [category.id]
+ )
+
+ assert_equal [category.id], author.special_categories_with_condition_ids
+ assert_equal [category.id], author.nonspecial_categories_with_condition_ids
+
+ author.update(nonspecial_categories_with_condition_ids: [])
+ author.reload
+
+ assert_equal [category.id], author.special_categories_with_condition_ids
+ assert_equal [], author.nonspecial_categories_with_condition_ids
+ end
+
def test_single_has_many_through_association_with_unpersisted_parent_instance
post_with_single_has_many_through = Class.new(Post) do
def self.name; "PostWithSingleHasManyThrough"; end