diff options
author | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2012-08-15 08:45:15 -0700 |
---|---|---|
committer | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2012-08-15 08:45:15 -0700 |
commit | cf232e37adc8cdf570a04415ba4c51a73dd06463 (patch) | |
tree | f75231993eb99848a389c0aad1d2a7c47e0d6f70 /activerecord/lib/active_record | |
parent | 0d0d46222cb87032e76bad42ef812b7ee7367873 (diff) | |
parent | f28096476dee5c7d5af037e4cdf06b339fe4778a (diff) | |
download | rails-cf232e37adc8cdf570a04415ba4c51a73dd06463.tar.gz rails-cf232e37adc8cdf570a04415ba4c51a73dd06463.tar.bz2 rails-cf232e37adc8cdf570a04415ba4c51a73dd06463.zip |
Merge pull request #7133 from roshats/fix_update_all_with_blank_argument
Change Relation#update_all with blank argument to raise an ArgumentError
instead of trying an update with empty fields.
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/relation.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb index 9ed3256ae9..1abbc58314 100644 --- a/activerecord/lib/active_record/relation.rb +++ b/activerecord/lib/active_record/relation.rb @@ -258,6 +258,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)) @@ -466,7 +468,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 |