我有以下方法:
@vulnerabilities = Vulnerability.details(filter_version_param,
filter: filter,
sort: order)
.paginate(page: page_param, per_page: 10)
此方法的内部使用arel查找要在页面上显示的相关信息。但是,当我从.page
gem遇到will_paginate
方法时,收到以下错误:
`undefined method `paginate' for #<PG::Result:0x007f8f096a3390>`
这当然要归功于返回的对象不是ActiveRecord的类。我的问题是,是否有办法将PG类转换为ActiveRecord模型?来自另一个开发人员的应用程序的先前实现创建了一个Struct.new()
类并将值提供给它。我想知道是否有更简单的方法来做到这一点。
答案 0 :(得分:0)
您有两种选择:
Kaminary gem as an example
:将查询结果转换为
数组并使用Kaminary.paginate_array(array_of_result).page(#pagenumber).per(#elemnts per page)
,但这种方式可能会导致大数据表出现问题,因为您需要加载孔表,然后对页面进行切片!
您可以构建一个对象,该对象具有分页器完成其工作所需的足够方法。
有关上述两点的更多解释和信息,请注意这个link。