问题与acts_as_votable gem有关。
我知道您可以使用Post.order(:cached_weighted_average => :desc)
按顺序对帖子进行排序(例如),但是我可以找到一种根据用户投票赞成帖子的朋友的数量对帖子进行排名的方法吗?
我可以做<% @posts_ranked_by_friend_likes = current_user.friends & Post.get_upvotes.voters %> <%= @posts_ranked_by_friend_likes.size %>
这样的事情,它会显示在该帖子上投票的朋友数量,但我怎样才能将这样的内容变成排名列表呢?
答案 0 :(得分:0)
您需要检查用户是否有帖子...如果是,请检查哪些帖子已被喜欢然后返回这些帖子...试试这个...您可以添加好友并修改以下方法< /强>
in user.rb
acts_as_voter
acts_as_votable
def all_posts_liked_by_others
@posts = Array.new
//check if user has posts
if self.posts.present?
//reload posts/votes to get latest
self.posts.reload.includes(:votes).each do |p|
//check which posts have been liked/disliked
if p.likes.count > 0
@posts << p
end
end
//return the liked posts
return @posts.compact.flatten.uniq
else
return @posts.compact.flatten.uniq
end
end##method ends