Mirkom63
@Mirkom63
Я программист

Как правильно сделать запрос в рельсах?

Задача в целом очень простая, но я что-то не понимаю как это сделать.

Есть товары. У них есть цена. У некоторых цена со знаком "По запросу". Соответственно поля price и on_request. Если price больше нуля, то on_request=false. Если price равен нулю, то on_request=true.

Нужно сделать сортировку по прайсу, но чтобы всегда товары со значение on_request=true были в конце списка.

Это обязательно должен быть один mysql запрос, так как у меня применяется постраничка с помощью kaminary.

Получается, что если я делаю order(price: :desc), то тут все ок, самые большие цены сначала, с нулем (соответствнно с on_request) в конце. Но если я делаю order(price: :asc), то логика ломается и on_requst лезут вперед, так как у них price=0, как в этой ситуации значения с on_request=true увести в конец?

Фух....надеюсь более менее понятно изложил.... Заранее спасибо огромное, знающие люди!
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
Dem1
@Dem1 Куратор тега Ruby on Rails
Ruby on Rails developer
order(on_request: :asc, price: :asc)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы