是否可以使用acts_as_votable对投票的朋友数量进行排名?

时间:2015-03-23 13:20:33

标签: ruby-on-rails

问题与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 %>这样的事情,它会显示在该帖子上投票的朋友数量,但我怎样才能将这样的内容变成排名列表呢?

1 个答案:

答案 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