1

我有 2 个存储过程,它们返回具有限制和偏移以及所有记录计数的数据。在这种情况下如何使用 Kaminari 进行分页?

UPD 我在边缘版本中遇到了 kaminari 的问题!我有从 ActiveRecord 扩展的抽象类 MyRecord,其他模型扩展了这个抽象类。

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)))
4

1 回答 1

4

刚刚在 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)
于 2011-08-29T03:40:03.630 回答