class Elasticsearch::Model::Extensions::OuterDocumentUpdating::Update::Default
Public Class Methods
applicable_to?(klass)
click to toggle source
# File lib/elasticsearch/model/extensions/outer_document_updating.rb, line 19 def self.applicable_to?(klass) true end
Public Instance Methods
apply()
click to toggle source
# File lib/elasticsearch/model/extensions/outer_document_updating.rb, line 23 def apply parent_class = @parent_class child_class = @child_class only_if = -> r { true } puts "Parent: #{@parent_class.name}" puts "Child: #{@child_class.name}" # 子cから親aへのパスが[:b, :a]のようなパスだったら、c.b.aのようにaを辿れるはずなので records_to_update_documents = begin child_to_parent_path = Elasticsearch::Model::Extensions::OuterDocumentUpdating::ClassMethods::AssociationTraversal.shortest_path(from: child_class, to: parent_class) -> updated_record { if child_to_parent_path.nil? warn "Couldn't automatically determine the path from the class `#{child_class}` to `#{parent_class}." + "Use `partially_updates_document_of parent_class, records_to_update_documents: -> child { ... }` to specify it." end child_to_parent_path.inject(updated_record) { |d, parent_association| d.send parent_association } } end [only_if, records_to_update_documents] end