Rails Kaminari нумерация страниц и хранимые процедуры - PullRequest
1 голос
/ 27 августа 2011

У меня есть 2 хранимые процедуры, которые возвращают данные с ограничением, смещением и количеством всех записей.Как я могу использовать Kaminari для нумерации страниц в этом случае?

UPD У меня проблема с Kaminari в краевой версии!У меня абстрактный класс MyRecord, расширенный от ActiveRecord, другие модели расширяют этот абстрактный класс.

class Customer < MyRecord
has_one :active_order, :class_name => 'Order', 
:conditions => {
:status_type => [Order::STATUS_TYPES[:active],Order::STATUS_TYPES[:paused]]
}

.......

контроллер

 @customers = Customer.search(params[:search]).includes(:active_order).order(sort_column + ' ' + sort_direction).page(params[:page]).per(25)

Я получаютеперь неправильный запрос (имя таблицы абстрактного класса вместо имени таблицы модели)

  SELECT `my_records`.* FROM `my_records` WHERE 
        (`my_records`.customer_id IN (160,161,162,163,164,165,166,167,168,169,170) 
    AND (`my_records`.`status_type` IN (0, 2)))

1 Ответ

4 голосов
/ 29 августа 2011

Только что добавили новую функцию в Kaminari :: PaginatableArray, которая решит вашу проблему. https://github.com/amatsuda/kaminari/pull/141

Можете ли вы связать крайнюю версию Kaminari:

gem 'kaminari', :git => 'git://github.com/amatsuda/kaminari'

и передать :total_count параметр PaginatableArray#new, как это?

Kaminari::PaginatableArray.new(array, :total_count => 1326).page(5)

или

Kaminari::PaginatableArray.new(array, :total_count => 9999, :limit => 10, :offset => 30)
...