module Mongoid::Denormalization::Helpers

Public Class Methods

field_value(from_doc, field_terms) click to toggle source
# 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) click to toggle source
# 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