仅当属性低于另一个属性时,ActiveRecord才会进行查询

问题描述 投票:0回答:1

我有当前的查询:

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

Meal还有另外两个属性:max_daily_orderstoday_orders。两者都是整数。

我想执行与上面提到的相同的查询,但只能在today_orders严格低于max_daily_orders的情况下获得用餐

例如:

  • 如果用餐'汉堡'的today_orders等于6,max_daily_orders等于6,则查询不应该使用它。
  • 而'Fish and Chips'这一餐的today_orders等于2,max_daily_orders等于8,所以它应该被查询

如何改进查询以便比较两个属性?

ruby-on-rails activerecord ruby-on-rails-5.1
1个回答
1
投票

你可以在where里面找到一个你的查询字符串,我通常使用这种方法因为它让我觉得我在编写纯SQL。

这应该适合你:

@meals = Meal.where("week_day = 1 
                 AND vacation_mode = false
                 AND today_orders < max_daily_orders")
© www.soinside.com 2019 - 2024. All rights reserved.