aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorRick Olson <technoweenie@gmail.com>2008-01-18 01:55:11 +0000
committerRick Olson <technoweenie@gmail.com>2008-01-18 01:55:11 +0000
commit49794485b6629a04d7efe324d7c91c0845dbdc2f (patch)
treea2d228f4bd910f7a160d2e21714241f8c343efa8 /activerecord/lib
parent3845de022b080642e87308471376911165506133 (diff)
downloadrails-49794485b6629a04d7efe324d7c91c0845dbdc2f.tar.gz
rails-49794485b6629a04d7efe324d7c91c0845dbdc2f.tar.bz2
rails-49794485b6629a04d7efe324d7c91c0845dbdc2f.zip
Ensure that modifying has_and_belongs_to_many actions clear the query cache. Closes #10840 [john.andrews]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8653 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb10
1 files changed, 5 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb b/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
index eb7ff0581a..923fbd8522 100644
--- a/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
+++ b/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
@@ -14,7 +14,7 @@ module ActiveRecord
def create(attributes = {})
create_record(attributes) { |record| insert_record(record) }
end
-
+
def create!(attributes = {})
create_record(attributes) { |record| insert_record(record, true) }
end
@@ -80,7 +80,7 @@ module ActiveRecord
end
if @reflection.options[:insert_sql]
- @owner.connection.execute(interpolate_sql(@reflection.options[:insert_sql], record))
+ @owner.connection.insert(interpolate_sql(@reflection.options[:insert_sql], record))
else
columns = @owner.connection.columns(@reflection.options[:join_table], "#{@reflection.options[:join_table]} Columns")
@@ -103,7 +103,7 @@ module ActiveRecord
"INSERT INTO #{@owner.connection.quote_table_name @reflection.options[:join_table]} (#{@owner.send(:quoted_column_names, attributes).join(', ')}) " +
"VALUES (#{attributes.values.join(', ')})"
- @owner.connection.execute(sql)
+ @owner.connection.insert(sql)
end
return true
@@ -111,11 +111,11 @@ module ActiveRecord
def delete_records(records)
if sql = @reflection.options[:delete_sql]
- records.each { |record| @owner.connection.execute(interpolate_sql(sql, record)) }
+ records.each { |record| @owner.connection.delete(interpolate_sql(sql, record)) }
else
ids = quoted_record_ids(records)
sql = "DELETE FROM #{@owner.connection.quote_table_name @reflection.options[:join_table]} WHERE #{@reflection.primary_key_name} = #{@owner.quoted_id} AND #{@reflection.association_foreign_key} IN (#{ids})"
- @owner.connection.execute(sql)
+ @owner.connection.delete(sql)
end
end