Module: Mongoid::Denormalization::Helpers

Defined in:
lib/mongoid/denormalization.rb

Class Method Summary collapse

Class Method Details

.field_value(from_doc, field_terms) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/mongoid/denormalization.rb', line 31

def self.field_value(from_doc, field_terms)
  value = from_doc
  field_terms.each do |field_term|
    value = value.send(field_term)
  end
  return value
end

.update_from_klass_changes(to_klass_infos, from_doc_id, field_value) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/mongoid/denormalization.rb', line 19

def self.update_from_klass_changes(to_klass_infos, from_doc_id, field_value)
  to_klass_infos.each do |to_klass_info|
    selector = to_klass_info[:selector_proc].call(from_doc_id, field_value)
    to_klass_info[:klasses].each do |klass|
      query = klass.where(selector)
      while query.present?
        klass.collection.find(selector).update_many({"$set" => {to_klass_info[:updator].to_sym => field_value}}, multi: true, safe: true)
      end
    end
  end
end