Skip to content

Commit 855fabc

Browse files
committed
fix #delete_all with habtm with :delete_sql
1 parent b98d1e2 commit 855fabc

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ def count_records
4444

4545
def delete_records(records, method)
4646
if sql = options[:delete_sql]
47+
records = load_target if records == :all
4748
records.each { |record| owner.connection.delete(interpolate(sql, record)) }
4849
else
4950
relation = join_table

activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,12 @@ def test_deleting_array_with_sql
379379
assert_equal 0, active_record.developers_by_sql(true).size
380380
end
381381

382+
def test_deleting_all_with_sql
383+
project = Project.find(1)
384+
project.developers_by_sql.delete_all
385+
assert_equal 0, project.developers_by_sql.size
386+
end
387+
382388
def test_deleting_all
383389
david = Developer.find(1)
384390
david.projects.reload

0 commit comments

Comments
 (0)