Mongoid排序模型基于数组大小,在其他Model(has_one)关系中

我有Postactivity模型,它有post_id作为Post Model的外键(has_one关系),这个Postactivity模型有Postactivity的数组。

我如何按likesPost模型进行排序?

 class Post has_one :postactivity, foreign_key: :post_activity_id, class_name:"PostActivity" end class PostActivity field :likes, type: Array belongs_to :post, foreign_key: :post_id, class_name: "Post" end 

 class PostActivity field :likes, type: Array field :likes_count, type: Integer, default: 0 belongs_to :post, foreign_key: :post_id, class_name: "Post" before_save do self.likes_count = lies.size end end 

现在,您可以通过likes_count字段对PostActivity模型进行排序。

 PostActivity.order_by(:likes_count => :desc) 

您将对PostActivity实例进行排序。 如果您需要发帖,可以通过电话联系:

 PostActivity.order_by(:likes_count => :desc).first.post 

posts =Array.new
PostActivity.order_by(:likes_count => :desc).each do |pa|
posts << pa.post
end
posts =Array.new
PostActivity.order_by(:likes_count => :desc).each do |pa|
posts << pa.post
end
这对我有用