sup*_*bot 1 ruby pagination ruby-on-rails
我正在使用佩吉。我将两个模型合并为一个,并在该组合模型上使用了 pagey。我收到此错误:
undefined method `offset' for #<Array:0x00007f886f88b3b0>
Run Code Online (Sandbox Code Playgroud)
下面突出显示代码的最后一行。
我的代码:
@problems = Problem.me_and_friends(current_user)
@activities = Activity.me_and_friends(current_user)
@combine = (@problems + @activities).sort{|a,b| a.created_at <=> b.created_at }
@pagy, @combined = pagy_countless(@combine, items:100, link_extra: 'class="" style="color:black; margin:3px;"')
Run Code Online (Sandbox Code Playgroud)
单独对@problems 使用分页效果很好。
我将不胜感激任何帮助。
一旦您调用(@problems + @activities),您就将 转换ActiveRecord::Relation为 an array(这也不好,因为您将所有数据库行加载到内存中,对它们进行排序,然后对它们进行分页)。Pagy 期望 ActiveRecord::Relation 能够工作,因此会出现错误。
可以考虑多种解决方案,
Problem或 an的参考表Activity)更新:2021 年 6 月 21 日
如果您使用 Rails 6,它引入了委托类型的概念,非常适合这种情况。链接中给出的示例提到了跨不同表的分页问题。
| 归档时间: |
|
| 查看次数: |
2876 次 |
| 最近记录: |