1

我正在为 Rails 使用 Activerecord-reputation-system gem。

  1. 我想调用Product模型中的所有产品,按它们的分数(声誉)排序。
  2. 您能否告诉我如何按时间段限制声誉 - 假设我只想按上个月发生的投票对所有产品进行排序。
4

1 回答 1

0

当然,您可以手动对集合进行排序:

@products.sort! {|p1, p2| p1.reputation_for(:votes) <=> p2.reputation_for(:votes)}

就个人而言,我更喜欢范围/连接驱动的方式来执行此操作,以允许操作数保持 ActiveRecord::Association。

Products.find_with_reputation(:votes, :all, {:order => 'votes DESC'})

或使用范围:

def self.most_voted
  find_with_reputation(:votes, :all, {:order => 'votes DESC'})
end
于 2013-06-26T23:48:54.203 回答