3

我正在使用位于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 方法与其他查询参数结合起来?

4

2 回答 2

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
于 2012-07-20T07:58:48.423 回答
0

我找到了另一个解决方案: 使用 Active Record Reputation System gem,当我按投票排序时不会发生排序

@posts = Post.page(params[:page]).reorder('votes desc').find_with_reputation(:votes, :all)
于 2016-04-12T18:56:28.383 回答