class Rethinker::Relation::HasMany::Selection

Attributes

parent_instance[RW]
relation[RW]

Public Class Methods

new(parent_instance, relation) click to toggle source
Calls superclass method
# File lib/rethinker/relation/has_many/selection.rb, line 5
def initialize(parent_instance, relation)
  self.relation = relation
  self.parent_instance = parent_instance
  super children_klass.where(foreign_key => parent_instance.id).criteria, klass: children_klass
end

Public Instance Methods

<<(child) click to toggle source
# File lib/rethinker/relation/has_many/selection.rb, line 11
def <<(child)
  # TODO raise when child doesn't have the proper type
  child.update_attributes(foreign_key => parent_instance.id)
end
build(attrs={}) click to toggle source
# File lib/rethinker/relation/has_many/selection.rb, line 16
def build(attrs={})
  children_klass.new(attrs.merge(foreign_key => parent_instance.id))
end
create(*args) click to toggle source
# File lib/rethinker/relation/has_many/selection.rb, line 20
def create(*args)
  build(*args).tap { |doc| doc.save }
end
create!(*args) click to toggle source
# File lib/rethinker/relation/has_many/selection.rb, line 24
def create!(*args)
  build(*args).tap { |doc| doc.save! }
end