module ActiveMongoid::Associations::RecordRelation::Macros::ClassMethods

Public Instance Methods

belongs_to_record(name, options = {}) click to toggle source
# File lib/active_mongoid/associations/record_relation/macros.rb, line 9
def belongs_to_record(name, options = {})
  meta = characterize_association(name, Referenced::In, options)
  reference_record(meta)
  relate_one_to_one_record(name, meta)
end
has_many_records(name, options = {}) click to toggle source
# File lib/active_mongoid/associations/record_relation/macros.rb, line 20
def has_many_records(name, options = {})
  meta = characterize_association(name, Referenced::Many, options)
  relate_record(name, meta)
  # document_ids_setter(name, metadata)
  # document_ids_getter(name, metadata)
end
has_one_record(name, options = {}) click to toggle source
# File lib/active_mongoid/associations/record_relation/macros.rb, line 15
def has_one_record(name, options = {})
  meta = characterize_association(name, Referenced::One, options)
  relate_one_to_one_record(name, meta)
end

Private Instance Methods

reference_record(metadata) click to toggle source
# File lib/active_mongoid/associations/record_relation/macros.rb, line 29
def reference_record(metadata)
  key = metadata.foreign_key
  if metadata.stores_foreign_key? && !fields.include?(key)
    field(
      key,
      type: Integer,
      default: metadata.foreign_key_default
    )
    if metadata.polymorphic?
      self.polymorphic = true
      field(metadata.inverse_type, type: String)
    end
  end
end
relate_one_to_one_record(name, metadata) click to toggle source
# File lib/active_mongoid/associations/record_relation/macros.rb, line 44
def relate_one_to_one_record(name, metadata)
  relate_record(name, metadata)
  record_builder(name, metadata)
  record_creator(name, metadata)
end
relate_record(name, metadata) click to toggle source
# File lib/active_mongoid/associations/record_relation/macros.rb, line 51
def relate_record(name, metadata)
  self.am_relations = am_relations.merge(name.to_s => metadata)
  record_getter(name, metadata)
  record_setter(name, metadata)
  autosave_records(metadata)
  dependent_records(metadata)
  existence_check(name)
end