gpt4 book ai didi

ruby-on-rails - Rails分页重复项

转载 作者:行者123 更新时间:2023-12-03 12:18:28 26 4
gpt4 key购买 nike

我在分页通话中收到重复的条目。

代码如下:

@reviews = @ user.reviews.paginate(:page => params [:page],:per_page => 5)

当我在终端中运行此命令时,它将返回重复的条目。这是一个例子:

第1页:

1.9.3p327 :040 > me.reviews.paginate(:page => 1, :per_page => 5)
Review Load (2.1ms) SELECT "reviews".* FROM "reviews" WHERE "reviews"."user_id" = 43 ORDER BY rating DESC LIMIT 5 OFFSET 0
(1.0ms) SELECT COUNT(*) FROM "reviews" WHERE "reviews"."user_id" = 43
=> [#<Review id: 319>, #<Review id: 322>, #<Review id: 318>, #<Review id: 323>, #<Review id: 313>]

第2页:
1.9.3p327 :045 > me.reviews.paginate(:page => 2, :per_page => 5)
Review Load (1.3ms) SELECT "reviews".* FROM "reviews" WHERE "reviews"."user_id" = 43 ORDER BY rating DESC LIMIT 5 OFFSET 5
(0.7ms) SELECT COUNT(*) FROM "reviews" WHERE "reviews"."user_id" = 43
=> [#<Review id: 313>, #<Review id: 324>, #<Review id: 315>, #<Review id: 310>, #<Review id: 312>]

请注意,评论#313会同时出现两次。

但是,当我运行me.reviews时,每个id只会出现一次。

我整天都在工作,因此可以快速响应以更新您可能需要的任何信息。我很困惑。

最佳答案

您的评论中有重复的评分(例如:4、4、4、4、3、3、3、3等)。在并列的情况下,对于2个不同的查询,不能保证结果的顺序相同。您可以通过在id上添加辅助排序来解决此问题。这样可以保证整个查询的排序顺序,并且在不同的页面上不会有重复项:

me.reviews.order(:rating, :id).paginate(...)

关于ruby-on-rails - Rails分页重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15623569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com