acts_as_follower 按follows数量排序问题

如果model是acts_as_followable的
在后面加上

Model.all.sort_by(&:followers_count)

按大到小排序就是

User.all.sort_by(&:followers_count).reverse

这种方式解决 会导致N+1次查询的问题

需要预先加载这个model的following的查询:

# models/article.rb    class Article < ActiveRecord::Base
  acts_as_followable
  default_scope { includes => :followings }  # ...end

但是这种查询还是很浪费资源

最好的解决办法就是 每次发现follow stop_follow动作的时候Article model记录下来follower总数 然后在根据数据排序

你可能感兴趣的:(acts_as_follower 按follows数量排序问题)