diff options
author | Andrew White <andyw@pixeltrix.co.uk> | 2015-11-17 14:57:48 +0000 |
---|---|---|
committer | Andrew White <andyw@pixeltrix.co.uk> | 2015-11-17 14:57:48 +0000 |
commit | 5d1d5f2840cd9aabd87e9dd4a110578d6c30db47 (patch) | |
tree | ff3dfd5d40a6ea4f63f528874e3215b783dedfd7 /activerecord/lib | |
parent | 35ca78a07c8b09ed81f09fe227e37c59cf13bb6f (diff) | |
download | rails-5d1d5f2840cd9aabd87e9dd4a110578d6c30db47.tar.gz rails-5d1d5f2840cd9aabd87e9dd4a110578d6c30db47.tar.bz2 rails-5d1d5f2840cd9aabd87e9dd4a110578d6c30db47.zip |
Raise ArgumentError when passing a truthy value to merge
In b71e08f we started raising when nil or false was passed to merge to
fix #12264, however we should also do this for truthy values that are
invalid like true.
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/relation/spawn_methods.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation/spawn_methods.rb b/activerecord/lib/active_record/relation/spawn_methods.rb index ee509b98d4..67d7f83cb4 100644 --- a/activerecord/lib/active_record/relation/spawn_methods.rb +++ b/activerecord/lib/active_record/relation/spawn_methods.rb @@ -40,10 +40,12 @@ module ActiveRecord def merge!(other) # :nodoc: if other.is_a?(Hash) Relation::HashMerger.new(self, other).merge + elsif other.is_a?(Relation) + Relation::Merger.new(self, other).merge elsif other.respond_to?(:to_proc) instance_exec(&other) else - Relation::Merger.new(self, other).merge + raise ArgumentError, "#{other.inspect} is not an ActiveRecord::Relation" end end |