ruby-on-rails - 雷中的重复物体

标签 ruby-on-rails ajax arrays pagination kaminari

我的 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 请求显示。

这是我的意思的一个示例...我单击了“加载更多”(我将其保留下来以进行演示),并且在新批处理加载时会重复出现一些对象。

repeated objects on Kaminari

任何帮助将不胜感激。提前致谢。

最佳答案

你必须对 count 和另一列进行排序(id 是最好的),这样 SQL 将返回一个不会改变的列表(因为现在 SQL 不知道要做什么如果 X 记录具有相同的计数)。

您可以将 .order(sort_column) 更改为 .order("#{sort_column} ASC, id ASC"),它应该可以工作。

关于ruby-on-rails - 雷中的重复物体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18022004/

相关文章:

ruby-on-rails - 为什么我在 Rails 4/Postgres 中创建的所有表都使用 "dimension"of 1?

arrays - 为什么在我的 if 语句中添加不等于空格会导致错误?

javascript - 如何循环遍历音频对象数组

ruby-on-rails - Rails Rake和mysql ssh端口转发

javascript - Rails 中的 json 路由取决于从何处调用

javascript - jQuery 从 <a href 'Click Me' >Click Me</a> 中提取 ="http://example.com"

javascript - 加载表格时显示页面加载图标

javascript - Ajax 加载内容,jquery 效果不起作用

javascript - 如何从我的 Ajax 调用 json 响应中更新 HTML 中的表数据?

java - 用下一个空白空间填充数组?