method

merge!

Importance_0
merge!(other, *rest) public

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# 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
Register or log in to add new notes.