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