Class: ActiveFedora::Associations::HasAndBelongsToManyAssociation

Inherits:
AssociationCollection show all
Defined in:
lib/active_fedora/associations/has_and_belongs_to_many_association.rb

Overview

:nodoc:

Instance Method Summary collapse

Methods inherited from AssociationCollection

#<<, #add_record_to_target_with_callbacks, #build, #create, #create!, #delete, #load_from_solr, #load_target, #replace, #reset, #size, #to_ary

Methods inherited from AssociationProxy

#loaded, #loaded?, #reload, #reset, #target, #target=

Constructor Details

#initialize(owner, reflection) ⇒ HasAndBelongsToManyAssociation

Returns a new instance of HasAndBelongsToManyAssociation.



5
6
7
# File 'lib/active_fedora/associations/has_and_belongs_to_many_association.rb', line 5

def initialize(owner, reflection)
  super
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class ActiveFedora::Associations::AssociationProxy

Instance Method Details

#find_targetObject



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/active_fedora/associations/has_and_belongs_to_many_association.rb', line 9

def find_target
    page_size = @reflection.options[:solr_page_size]
    page_size ||= 200
    pids = @owner.ids_for_outbound(@reflection.options[:property])
    return [] if pids.empty?
    solr_result = []
    0.step(pids.size,page_size) do |startIdx|
      query = ActiveFedora::SolrService.construct_query_for_pids(pids.slice(startIdx,page_size))
      solr_result += ActiveFedora::SolrService.query(query, rows: page_size)
    end
    return ActiveFedora::SolrService.reify_solr_results(solr_result)
end