Ruby on rails 如何基于两个字段进行排序

Ruby on rails 如何基于两个字段进行排序,ruby-on-rails,ruby,sqlite,activerecord,rails-activerecord,Ruby On Rails,Ruby,Sqlite,Activerecord,Rails Activerecord,我有一个带有price和sale\u price字段的产品模型 我想根据price按升序对记录进行排序,但如果产品具有sale\u price值,则应根据sale\u price而不是price对其进行排序: Product.id:1, Product.name:watch, Product.price:100, Product.sale_price:nil Product.id:2, Product.name:Bag, Product.price:200, Product.sale_price

我有一个带有
price
sale\u price
字段的产品模型

我想根据
price
按升序对记录进行排序,但如果产品具有
sale\u price
值,则应根据
sale\u price
而不是
price
对其进行排序:

Product.id:1, Product.name:watch, Product.price:100, Product.sale_price:nil
Product.id:2, Product.name:Bag, Product.price:200, Product.sale_price:50
Product.id:3, Product.name:Shoes, Product.price:300, Product.sale_price:nil
Product.order('coalesce(sale_price, price)')
我希望将其分类为:

  • 监视

  • 您可以尝试使用
    合并

    Product.id:1, Product.name:watch, Product.price:100, Product.sale_price:nil
    Product.id:2, Product.name:Bag, Product.price:200, Product.sale_price:50
    Product.id:3, Product.name:Shoes, Product.price:300, Product.sale_price:nil
    
    Product.order('coalesce(sale_price, price)')
    

    欢迎来到堆栈溢出。请阅读“”,包括链接和“”。我们需要看到你努力解决这个问题的证据。现在看起来你什么都没做,只是想让我们为你写代码,这不是你的目的。