背景:我有帖子和用户,并且都有很多社区。
目标:对于任何给定的用户,我想返回一个帖子集合,按帖子与用户有多少共同社区排序(具有更多共同社区的帖子更高)
我当前的尝试(使用 sort 方法)有效:
Post.includes(:community_posts).where(community_posts: { community_id: current_user.community_ids }).sort{ |x,y| (y.community_ids & current_user.community_ids).length <=> (x.community_ids & current_user.community_ids).length }
但是有没有更好/更有效的方法来做到这一点?