我有一个连接到外部数据库的模型,我使用 find_by_sql 方法进行查询,如下所示:
External.find_by_sql("SELECT * from table")
但是,当我添加 .page(params[:page]) 时,会出现错误“类数组的未定义方法页面”。是否可以对使用 find_by_sql 获取的结果进行分页?
我有一个连接到外部数据库的模型,我使用 find_by_sql 方法进行查询,如下所示:
External.find_by_sql("SELECT * from table")
但是,当我添加 .page(params[:page]) 时,会出现错误“类数组的未定义方法页面”。是否可以对使用 find_by_sql 获取的结果进行分页?
这对我有用:
Kaminari.paginate_array(my_array_object).page(params[:page]).per(10)
https://github.com/kaminari/kaminari/wiki/Kaminari-recipes#-how-do-i-paginate-an-array
如果您无法避免使用 find_by_sql,请查看kaminari wiki的最后一个问题。
查看 kaminari 插件,它似乎只适用于 ActiveRecord 和 ActiveRecord 范围,但 find_by_sql 不能作为范围工作,而是返回一个数组。
在挖掘 kaminari 时,我还没有找到一种“分页”数组的透明方式。您可以尝试手动滚动它,但这可能会很棘手。