2016-01-11 2 views
2

Я использую SunSpot 2.2.2 в моем рельсах приложение для поиска результатов, У меня есть этот код для группировки в моей модели:will_paginate для группового запроса с веснушки 2.2.2 в рельсах

def self.search_products(params, currency = nil, page_uri = nil) 
    search_products = Sunspot.search(VariantPrice) do 
    group :code do 
    if params[:gallery_order].present? 
     order_by :price, params[:gallery_order].downcase.to_sym 
    elsif params[:new_arrival].present? || params[:name] == "new-arrivals" 
     order_by :product_created_at, :desc 
    else 
     if params[:fashion_type] == "fashion" 
     order_by :price, :asc 
     elsif params[:sort] != "lowhigh" 
     order_by :price, :asc 
     else 
     order_by :price, :asc 
     end 
    end 
    limit 1 
    end 
end 

и у меня есть этот код в моем контроллере:

variant_prices = Product.search_products(params, @currency, request.original_fullpath) 

@variant_prices = [] 
variant_prices.group(:code).groups.each do |group| 
    group.results.each do |result| 
    @variant_prices << result  
    end 
end 
@variant_prices = @variant_prices.paginate(:page => params[:page], :per_page => PER_PAGE_VALUE) 
@variant_prices_count = variant_prices.group(:code).total 

теперь я получаю ожидаемый счет, который @variant_prices_count, который 1400 в моем случае, но я получаю рассчитывать @variant_prices, как 60, который не так в моем случае, здесь я ожидал получить 1400. И тогда я хочу разбиться на страницы с этим результатом. не могу понять, будет ли это проблемой will_paginate или чем-то еще. Помощь!

+0

Что ваше значение PER_PAGE_VALUE установить, как? – Tim

+0

variant_prices.group (: code) .total дает результат 1400 как результат, и я хочу разбивать его на 1400 данных результатов, но в конечном результате я получаю только 60 значений –

+0

по умолчанию 19 значений –

ответ

1

Вы можете получить 1400 из постраничной экземпляра также по Total entries

этим путем замены count с total_entries

@variant_prices = @variant_prices.paginate(:page => params[:page], :per_page => PER_PAGE_VALUE) 
@variant_prices.total_entries#it will return toal entries 1400