【问题标题】:find_by_sql and pagination with kamanarifind_by_sql 和 kaminari 分页
【发布时间】:2011-08-02 03:23:00
【问题描述】:

我有一个连接到外部数据库的模型,我使用 find_by_sql 方法进行查询,如下所示:

External.find_by_sql("SELECT * from table")

但是,当我添加 .page(params[:page]) 时,出现错误“类数组的未定义方法页面”。是否可以对使用 find_by_sql 获取的结果进行分页?

【问题讨论】:

    标签: ruby-on-rails pagination find-by-sql


    【解决方案1】:

    看看 kaminari 插件,它似乎只适用于 ActiveRecord 和 ActiveRecord 范围,但 find_by_sql 不能作为范围工作,而是返回一个数组。

    我还没有找到,通过 kaminari 挖掘,一种对数组进行“分页”的透明方式。您可以尝试手动滚动它,但这可能会很棘手。

    【讨论】:

      【解决方案2】:

      如果您无法避免使用 find_by_sql,请查看kaminari wiki 的最后一个问题。

      【讨论】:

      【解决方案3】:

      这对我有用:

      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

      【讨论】:

      • 如果你知道你的数组永远不会太大,那就太好了。否则,我相信您仍然会将所有对象加载到内存中。
      猜你喜欢
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 2013-01-10
      相关资源
      最近更新 更多