mirror of
https://github.com/github/rails.git
synced 2026-01-30 08:48:06 -05:00
pdate_all ignores scoped :order and :limit, so post.comments.update_all doesn't try to include the comment order in the update statement. Closes #10686.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8554 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
*SVN*
|
||||
|
||||
* update_all ignores scoped :order and :limit, so post.comments.update_all doesn't try to include the comment order in the update statement. #10686 [Brendan Ribera]
|
||||
|
||||
* Added ActiveRecord::Base.cache_key to make it easier to cache Active Records in combination with the new ActiveSupport::Cache::* libraries [DHH]
|
||||
|
||||
* Make sure CSV fixtures are compatible with ruby 1.9's new csv implementation. [JEG2]
|
||||
|
||||
@@ -680,8 +680,8 @@ module ActiveRecord #:nodoc:
|
||||
sql = "UPDATE #{table_name} SET #{sanitize_sql_for_assignment(updates)} "
|
||||
scope = scope(:find)
|
||||
add_conditions!(sql, conditions, scope)
|
||||
add_order!(sql, options[:order], scope)
|
||||
add_limit!(sql, options, scope)
|
||||
add_order!(sql, options[:order], nil)
|
||||
add_limit!(sql, options, nil)
|
||||
connection.update(sql, "#{name} Update")
|
||||
end
|
||||
|
||||
|
||||
@@ -596,6 +596,13 @@ class BasicsTest < Test::Unit::TestCase
|
||||
end
|
||||
end
|
||||
|
||||
def test_update_all_ignores_order_limit_from_association
|
||||
author = Author.find(1)
|
||||
assert_nothing_raised do
|
||||
assert_equal author.posts_with_comments_and_categories.length, author.posts_with_comments_and_categories.update_all("body = 'bulk update!'")
|
||||
end
|
||||
end
|
||||
|
||||
def test_update_many
|
||||
topic_data = { 1 => { "content" => "1 updated" }, 2 => { "content" => "2 updated" } }
|
||||
updated = Topic.update(topic_data.keys, topic_data.values)
|
||||
|
||||
Reference in New Issue
Block a user