提交 e9f53f7a 编写于 作者: A Aaron Patterson

Merge pull request #14546 from eileencodes/fix_delete_all_to_not_use_IN_statement

Fix delete all to not produce sql in statement
......@@ -248,7 +248,7 @@ def delete(*records)
dependent = _options[:dependent] || options[:dependent]
if records.first == :all
if loaded? || dependent == :destroy
if (loaded? || dependent == :destroy) && dependent != :delete_all
delete_or_destroy(load_target, dependent)
else
delete_records(:all, dependent)
......
......@@ -22,6 +22,8 @@
require 'models/categorization'
require 'models/minivan'
require 'models/speedometer'
require 'models/reference'
require 'models/job'
class HasManyAssociationsTestForReorderWithJoinDependency < ActiveRecord::TestCase
fixtures :authors, :posts, :comments
......@@ -39,7 +41,7 @@ class HasManyAssociationsTest < ActiveRecord::TestCase
fixtures :accounts, :categories, :companies, :developers, :projects,
:developers_projects, :topics, :authors, :comments,
:people, :posts, :readers, :taggings, :cars, :essays,
:categorizations
:categorizations, :jobs
def setup
Client.destroyed_client_ids.clear
......@@ -107,6 +109,19 @@ def test_do_not_call_callbacks_for_delete_all
assert_equal 0, Bulb.count, "bulbs should have been deleted using :delete_all strategy"
end
def test_delete_all_on_association_is_the_same_as_not_loaded
author = authors :david
author.thinking_posts.create!(:body => "test")
author.reload
expected_sql = capture_sql { author.thinking_posts.delete_all }
author.thinking_posts.create!(:body => "test")
author.reload
author.thinking_posts.inspect
loaded_sql = capture_sql { author.thinking_posts.delete_all }
assert_equal(expected_sql, loaded_sql)
end
def test_building_the_associated_object_with_implicit_sti_base_class
firm = DependentFirm.new
company = firm.companies.build
......
......@@ -19,6 +19,12 @@ def assert_date_from_db(expected, actual, message = nil)
end
end
def capture_sql
SQLCounter.clear_log
yield
SQLCounter.log_all.dup
end
def assert_sql(*patterns_to_match)
SQLCounter.clear_log
yield
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册