Module: Mongoid::Denormalization::Helpers
- Defined in:
- lib/mongoid/denormalization.rb
Class Method Summary collapse
- .field_value(from_doc, field_terms) ⇒ Object
- .update_from_klass_changes(to_klass_infos, from_doc_id, field_value) ⇒ Object
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 |