From d9b4bb3942b6f76a432133d5ed3c157d88dc3236 Mon Sep 17 00:00:00 2001 From: Dmitry Sokurenko Date: Thu, 24 Jul 2008 13:53:12 +0400 Subject: [PATCH] Make #destroy write 1 line into log (instead of 3). --- activerecord/lib/active_record/base.rb | 9 +++++---- activerecord/test/cases/base_test.rb | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 4f5d72a..ed42764 100755 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -2227,10 +2227,11 @@ module ActiveRecord #:nodoc: # be made (since they can't be persisted). def destroy unless new_record? - connection.delete <<-end_sql, "#{self.class.name} Destroy" - DELETE FROM #{self.class.quoted_table_name} - WHERE #{connection.quote_column_name(self.class.primary_key)} = #{quoted_id} - end_sql + connection.delete( + "DELETE FROM #{self.class.quoted_table_name} " + + "WHERE #{connection.quote_column_name(self.class.primary_key)} = #{quoted_id}", + "#{self.class.name} Destroy" + ) end freeze diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index 9e4f268..728db47 100755 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -1988,4 +1988,20 @@ class BasicsTest < ActiveRecord::TestCase ensure ActiveRecord::Base.logger = original_logger end + + def test_destroy_writes_one_line_into_log + record = Company.create!(:name => 'Acme') + + original_logger = ActiveRecord::Base.connection.instance_variable_get(:@logger) + log = StringIO.new + logger = Logger.new(log) + logger.level = Logger::DEBUG + ActiveRecord::Base.connection.instance_variable_set(:@logger, logger) + + record.destroy + + assert_equal 1, log.string.scan(/\n/).size + ensure + ActiveRecord::Base.connection.instance_variable_set(:@logger, original_logger) + end end -- 1.5.5.1