Method: DataBroker::Mapper::InstanceMethods#save

Defined in:
lib/data_broker/mapper.rb

#save(model, eager_load: true) ⇒ Object



91
92
93
94
95
96
97
98
99
# File 'lib/data_broker/mapper.rb', line 91

def save(model, eager_load: true)
  record = self.eager_record(eager_load).find_by(:id => model.id) || self.record.new
  attributes = Hash[self.mapping.map { |key, value| [value, model[key]] }]
  attributes.delete(:id)
  record.attributes = attributes

  record.save!
  records_to_objects(record.reload, :eager_load => eager_load).first
end