我正在使用位于https://github.com/twitter/activerecord-reputation-system的activerecord-reputation-system gem。在我的申请中,我有一些帖子,我希望通过投票使用
进行排序 ActiveRecord::Base.find_with_reputation(:reputation_name, :scope, :find_options)
方法。我也有足够的帖子,我需要它们被分页和搜索。但是每当我调用通常在我的帖子集合上工作的页面或搜索方法时,我得到一个方法不存在错误。我通常的收集电话看起来像这样
Post.all.text_search(params[:query]).order("created_at desc").page(params[:page]).per(20)
我正在使用Kaminari进行分页。有谁知道如何将find_with_reputation方法与其他查询参数结合起来?
答案 0 :(得分:3)
与普通的Active Record finder方法类似:
Post.page(params[:page]).per(20).find_with_reputation(:reputation_name, :scope, :find_options)
例如,如果您的帖子有声誉votes
:
Post.page(params[:page]).per(20).find_with_reputation(:votes, :all, {:order => 'votes DESC, created_at DESC'})
这将找到按声誉,创建日期和分页排序的帖子。
您还可以在模型中为该查找器创建范围:
def self.most_voted
find_with_reputation(:votes, :all, {:order => 'votes DESC'})
end
然后使用:
Post.page(params[:page]).per(20).most_voted
答案 1 :(得分:0)
我找到了另一个解决方案: Using Active Record Reputation System gem, no sorting happens when I sort by votes
@posts = Post.page(params[:page]).reorder('votes desc').find_with_reputation(:votes, :all)