module HasUuid::ActiveRecord::Associations::CollectionAssociation

Public Instance Methods

uuids_reader() click to toggle source
# File lib/has_uuid/active_record/associations/collection_association.rb, line 7
def uuids_reader
  if loaded? || options[:finder_sql]
    load_target.map do |record|
      record.send(reflection.association_primary_uuid)
    end
  else
    column  = "#{reflection.quoted_table_name}.#{reflection.association_primary_uuid}"
    association_scope.pluck(column)
  end
end
uuids_writer(uuids) click to toggle source
# File lib/has_uuid/active_record/associations/collection_association.rb, line 18
def uuids_writer(uuids)
  uuid_column = reflection.primary_uuid_column
  uuids = Array(uuids).reject { |uuid| uuid.blank? }
  uuids.map! { |u| uuid_column.type_cast(u) }
  replace(klass.find(uuids).index_by { |r| r.uuid }.values_at(*uuids))
end