以下函数按降序投票(使用有效记录信誉系统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")
答案 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")