我的控制器中有一个对象数组,由Kaminari分页:
@pics = Pic.page(params[:page]).per(12).order(sort_column)
我使用AJAX请求在同一页面上呈现每组新的12个图片,以获得手动无限滚动效果。 sort_column
位根据对象内的most_viewed
属性对图片进行排序。
我的问题 - 有时候,当有许多具有相同most_viewed
属性的照片时, - 即有10张图像以“20”作为其最受欢迎的值 - 我会在新的集合中获得重复的对象使用AJAX请求显示12。
这是我的意思的一个例子......我点击了“加载更多”(我已将其留下来进行演示),并且在新批次加载时会重复对象。
非常感谢任何帮助。提前谢谢。
答案 0 :(得分:3)
你必须按计数排序和另一列(id
是最好的),这样SQL将返回一个不会改变的列表(因为现在SQL不知道如果X记录该怎么办有相同的数量)。
您可以将.order(sort_column)
更改为.order("#{sort_column} ASC, id ASC")
,它应该有效。