Запрос ActiveRecord, только если атрибут уступает другому - PullRequest
0 голосов
/ 14 марта 2019

У меня есть текущий запрос:

@meals = Meal.where(week_day: 1, vacation_mode: false).order('random()')

Meal имеет два других атрибута: max_daily_orders и today_orders.Оба являются целыми числами.

Я хочу выполнить тот же запрос, что и упомянутый выше, но получать еду только там, где today_orders строго уступает max_daily_orders

, например:

  • если еда 'Гамбургер' имеет today_orders, равную 6, и max_daily_orders, равную 6, запрос не должен приниматься.
  • , тогда как у еды "Рыба с жареным картофелем" today_orders равно 2, а max_daily_orders равно 8, поэтому ее следует принять по запросу

Как мне улучшить мойзапрос, чтобы я мог сравнить оба атрибута?

1 Ответ

1 голос
/ 14 марта 2019

У вас может быть просто строка того, что будет вашим запросом, где, я обычно использую этот подход, потому что это заставляет меня чувствовать, что я пишу простой SQL.

Это должно работать для вас:

@meals = Meal.where("week_day = 1 
                 AND vacation_mode = false
                 AND today_orders < max_daily_orders")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...