class Rawscsi::SearchHelpers::ResultsActiveRecord

Attributes

response[R]

Public Class Methods

new(response, model) click to toggle source
# File lib/rawscsi/search_helpers/results_active_record.rb, line 6
def initialize(response, model)
  @response = response
  @model = model
end

Public Instance Methods

build() click to toggle source
# File lib/rawscsi/search_helpers/results_active_record.rb, line 11
def build
  id_array = @response["hits"]["hit"].map {|h| model_id(h["id"]) }
  return [] if id_array.empty?
  results =
    if ActiveRecord::VERSION::MAJOR > 2
      klass.where(:id => id_array).to_a  
    else
      klass.find_all_by_id(id_array)
    end
  results.index_by(&:id).slice(*id_array).values
end

Private Instance Methods

klass() click to toggle source
# File lib/rawscsi/search_helpers/results_active_record.rb, line 24
def klass
  @model.constantize 
end
model_id(doc_id) click to toggle source
# File lib/rawscsi/search_helpers/results_active_record.rb, line 28
def model_id(doc_id)
  doc_id.split('_').last.to_i
end