find_with_reputation的多个订单值

时间:2013-11-15 12:36:16

标签: ruby-on-rails ruby

以下函数按降序投票(使用有效记录信誉系统link to gem)对业务(关系)进行排序。

@businesses = Business.find_with_reputation(:votes, :all, order: "votes desc")

我如何添加二级订单值以便按投票排序,但如果投票相等,则按created_at排序(最旧的顶部)?

是否简单:

@businesses = Business.find_with_reputation(:votes, :all, order: "votes desc, created_at desc")

1 个答案:

答案 0 :(得分:1)

我怀疑您提出的答案会导致SQL错误,因为'created_at'可能会出现在信誉表和Business表中。为了解决这个问题,我建议具体使用created_at。

Business.find_with_reputation(:votes, :all, order: "votes desc, businesses.created_at desc")

但是,我建议您使用id列。使用INTs的DB会更快,排序顺序应该相同。

Business.find_with_reputation(:votes, :all, order: "votes desc, businesses.id desc")