Как сортировать по двум полям

-3

У меня есть модель продукта с полями price и sale_price.

Я хочу сортировать записи по price в порядке возрастания, но если у продукта есть значение sale_price оно должно быть отсортировано по 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

Я хочу, чтобы это было отсортировано как:

  1. Мешок
  2. смотреть
  3. обувь
  • 0
    Добро пожаловать в стек переполнения. Пожалуйста, прочитайте « Как спросить », включая ссылки, и « Минимальный, полный и проверяемый пример ». Нам нужно увидеть доказательства ваших усилий, чтобы решить эту проблему. Сейчас кажется, что вы ничего не сделали и хотите, чтобы мы написали код для вас, а это не то, для чего SO.
Теги:
activerecord
rails-activerecord

1 ответ

1
Лучший ответ

Вы можете попробовать с coalesce:

Product.order('coalesce(sale_price, price)')

Ещё вопросы

Сообщество Overcoder
Наверх
Меню