method
find_unique_index_for
v6.1.3.1 -
Show latest stable
- Class:
ActiveRecord::InsertAll
find_unique_index_for(unique_by)private
No documentation available.
# File activerecord/lib/active_record/insert_all.rb, line 71
def find_unique_index_for(unique_by)
return unique_by if !connection.supports_insert_conflict_target?
name_or_columns = unique_by || model.primary_key
match = Array(name_or_columns).map(&:to_s)
if index = unique_indexes.find { |i| match.include?(i.name) || i.columns == match }
index
elsif match == primary_keys
unique_by.nil? ? nil : ActiveRecord::ConnectionAdapters::IndexDefinition.new(model.table_name, "#{model.table_name}_primary_key", true, match)
else
raise ArgumentError, "No unique index found for #{name_or_columns}"
end
end