Method: ActiveRecord::ConnectionAdapters::TableDefinition#set_primary_key

Defined in:
activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb

#set_primary_key(table_name, id, primary_key, **options) ⇒ Object



395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 395

def set_primary_key(table_name, id, primary_key, **options)
  if id && !as
    pk = primary_key || Base.get_primary_key(table_name.to_s.singularize)

    if id.is_a?(Hash)
      options.merge!(id.except(:type))
      id = id.fetch(:type, :primary_key)
    end

    if pk.is_a?(Array)
      primary_keys(pk)
    else
      primary_key(pk, id, **options)
    end
  end
end