Mongoid排序模型基于数组大小,在其他Model(has_one)关系中
我有Postactivity
模型,它有post_id
作为Post Model的外键(has_one关系),这个Postactivity
模型有Postactivity
的数组。
我如何按likes
对Post
模型进行排序?
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
endposts =Array.new
这对我有用
PostActivity.order_by(:likes_count => :desc).each do |pa|
posts << pa.post
end