aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation.rb
diff options
context:
space:
mode:
authorRoman Shatsov <roshats@gmail.com>2012-07-23 11:33:21 +0300
committerRoman Shatsov <roshats@gmail.com>2012-08-14 21:04:48 +0300
commitf28096476dee5c7d5af037e4cdf06b339fe4778a (patch)
treedefee001d3a44a5b4a95dae407802af585d71acb /activerecord/lib/active_record/relation.rb
parent580fa0c7be62868ff521570d37094e22ffa81f00 (diff)
downloadrails-f28096476dee5c7d5af037e4cdf06b339fe4778a.tar.gz
rails-f28096476dee5c7d5af037e4cdf06b339fe4778a.tar.bz2
rails-f28096476dee5c7d5af037e4cdf06b339fe4778a.zip
raise ArgumentError if list of attributes to change is empty in update_all
Diffstat (limited to 'activerecord/lib/active_record/relation.rb')
-rw-r--r--activerecord/lib/active_record/relation.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb
index 3821c6122a..b57bd90709 100644
--- a/activerecord/lib/active_record/relation.rb
+++ b/activerecord/lib/active_record/relation.rb
@@ -296,6 +296,8 @@ module ActiveRecord
# # Update all books that match conditions, but limit it to 5 ordered by date
# Book.where('title LIKE ?', '%Rails%').order(:created_at).limit(5).update_all(:author => 'David')
def update_all(updates)
+ raise ArgumentError, "Empty list of attributes to change" if updates.blank?
+
stmt = Arel::UpdateManager.new(arel.engine)
stmt.set Arel.sql(@klass.send(:sanitize_sql_for_assignment, updates))
@@ -483,7 +485,7 @@ module ActiveRecord
# Returns sql statement for the relation.
#
# Users.where(name: 'Oscar').to_sql
- # # => SELECT "users".* FROM "users" WHERE "users"."name" = 'Oscar'
+ # # => SELECT "users".* FROM "users" WHERE "users"."name" = 'Oscar'
def to_sql
@to_sql ||= klass.connection.to_sql(arel, bind_values.dup)
end