module ActiveRecord::Persistence

Public Instance Methods

_create_record(attribute_names = self.attribute_names) { |self| ... } click to toggle source
# File lib/composite_primary_keys/persistence.rb, line 74
def _create_record(attribute_names = self.attribute_names)
  attribute_names = attributes_for_create(attribute_names)

  new_id = self.class._insert_record(
      attributes_with_values(attribute_names)
  )

  # CPK
  if self.composite?
    self.id = self.id.zip(Array(new_id)).map {|id1, id2| id2.nil? ? id1 : id2}
  else
    self.id ||= new_id if self.class.primary_key
  end

  @new_record = false
  @previously_new_record = true

  yield(self) if block_given?

  id
end