我的 Controller 中有一个对象数组,由 Kaminari 分页:
@pics = Pic.page(params[:page]).per(12).order(sort_column)
我使用 AJAX 请求在同一页面上渲染每组 12 张新图片,以实现手动无限滚动效果。 sort_column
位根据对象内的 most_viewed
属性对图片进行排序。
我的问题 - 有时,当有许多图片具有相同的 most_viewed
属性时, - 即有 10 张图像的most_viewed 值是“20” - 当新的 12 组通过 AJAX 请求显示。
这是我的意思的一个示例...我单击了“加载更多”(我将其保留下来以进行演示),并且在新批处理加载时会重复出现一些对象。
任何帮助将不胜感激。提前致谢。
最佳答案
你必须对 count 和另一列进行排序(id
是最好的),这样 SQL 将返回一个不会改变的列表(因为现在 SQL 不知道要做什么如果 X 记录具有相同的计数)。
您可以将 .order(sort_column)
更改为 .order("#{sort_column} ASC, id ASC")
,它应该可以工作。
关于ruby-on-rails - 雷中的重复物体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18022004/