【问题标题】:Rails Kaminari pagination and stored proceduresRails Kaminari 分页和存储过程
【发布时间】:2015-06-19 01:57:49
【问题描述】:

我有 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)))

【问题讨论】:

  • 你已经看过 github 上的文档了吗?
  • 是的,我使用的是 ActiveRecord 并且也知道它可以与 array 一起使用,但在我的情况下,我没有完整的数组只有一部分

标签: ruby-on-rails ruby-on-rails-3 pagination kaminari


【解决方案1】:

刚刚在 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)

【讨论】:

  • 我在 edge 版本中遇到了 kaminari 的问题!
  • сhanged 扩展 AR 到混音,一切正常,但还是有问题 =)
猜你喜欢
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
  • 2016-07-17
  • 1970-01-01
  • 2011-08-02
  • 2014-06-26
  • 2012-02-18
  • 1970-01-01
相关资源
最近更新 更多