method
merge!
v7.1.3.4 -
Show latest stable
- Class:
ActiveRecord::SpawnMethods
merge!(other, *rest)public
No documentation available.
# File activerecord/lib/active_record/relation/spawn_methods.rb, line 43
def merge!(other, *rest) # :nodoc:
options = rest.extract_options!
if options.key?(:rewhere)
if options[:rewhere]
ActiveRecord.deprecator.warn( Specifying `Relation#merge(rewhere: true)` is deprecated, as that has now been the default since Rails 7.0. Setting the rewhere option will error in Rails 7.2.squish)
else
ActiveRecord.deprecator.warn( `Relation#merge(rewhere: false)` is deprecated without replacement, and will be removed in Rails 7.2.squish)
end
end
if other.is_a?(Hash)
Relation::HashMerger.new(self, other, options[:rewhere]).merge
elsif other.is_a?(Relation)
Relation::Merger.new(self, other, options[:rewhere]).merge
elsif other.respond_to?(:to_proc)
instance_exec(&other)
else
raise ArgumentError, "#{other.inspect} is not an ActiveRecord::Relation"
end
end