method
new
rails latest stable - Class:
ActiveRecord::InsertAll
new(model, inserts, on_duplicate:, update_only: nil, returning: nil, unique_by: nil, record_timestamps: nil)public
No documentation available.
# File activerecord/lib/active_record/insert_all.rb, line 10
def initialize(model, inserts, on_duplicate,, update_only: nil, returning: nil, unique_by: nil, record_timestamps: nil)
@model, @connection, @inserts = model, model.connection, inserts.map(&:stringify_keys)
@on_duplicate, @update_only, @returning, @unique_by = on_duplicate, update_only, returning, unique_by
@record_timestamps = record_timestamps.nil? ? model.record_timestamps : record_timestamps
disallow_raw_sql!(on_duplicate)
disallow_raw_sql!(returning)
if @inserts.empty?
@keys = []
else
resolve_sti
resolve_attribute_aliases
@keys = @inserts.first.keys
end
if model.scope_attributes?
@scope_attributes = model.scope_attributes
@keys |= @scope_attributes.keys
end
@keys = @keys.to_set
@returning = (connection.supports_insert_returning? ? primary_keys : false) if @returning.nil?
@returning = false if @returning == []
@unique_by = find_unique_index_for(@unique_by)
configure_on_duplicate_update_logic
ensure_valid_options_for_connection!
end