0

我在我的 Rails 应用程序中使用了分页 gem (kaminari),并且很难对 Mongo 文档的集合进行排序。

首先,我构建我的查询,即为用户检索所有最新评论的一页:

comments = user.comments.desc(:created_at).page(params[:page])

默认情况下,这会给我 25 条记录。然后我想呈现每条评论,但现在颠倒顺序,以便最新的评论位于底部:

comments.asc(:created_at).each do |comment|
  - render the comment

但是,通过在我的 comments 变量上调用 asc,它只是重新定义查询并为我提供该用户最旧的评论,而不是最新的评论。

如何检索集合并对该对象进行排序,而不是简单地更改查询范围?

4

1 回答 1

2

如果您在 mongoid 查询上调用 to_a,它将在该点执行查询。

comments = user.comments.desc(:created_at).page(params[:page])
comments.to_a.reverse.each do |comment|
  - render the comment

所以我们调用数组的注释,然后反转数组

于 2011-08-17T01:31:25.247 回答