仅当属性低于另一个时才进行 ActiveRecord 查询
ActiveRecord query only if attribute is inferior than another
我有当前查询:
@meals = Meal.where(week_day: 1, vacation_mode: false).order('random()')
Meal
还有两个属性:max_daily_orders
和 today_orders
。两者都是整数。
我想执行与上述相同的查询,但只获取 today_orders
严格低于 max_daily_orders
的餐点
例如:
- 如果这顿饭 'Hamburger'
today_orders
等于 6 并且
max_daily_orders
等于6,不应该被查询带走。
- 而这顿饭 'Fish and Chips'
today_orders
等于 2 并且
max_daily_orders
等于 8 所以它应该被查询
如何改进我的查询以便比较这两个属性?
你可以只在 where 中输入一串查询内容,我通常使用这种方法,因为它让我觉得我在写简单的 SQL.
这应该适合你:
@meals = Meal.where("week_day = 1
AND vacation_mode = false
AND today_orders < max_daily_orders")
我有当前查询:
@meals = Meal.where(week_day: 1, vacation_mode: false).order('random()')
Meal
还有两个属性:max_daily_orders
和 today_orders
。两者都是整数。
我想执行与上述相同的查询,但只获取 today_orders
严格低于 max_daily_orders
例如:
- 如果这顿饭 'Hamburger'
today_orders
等于 6 并且max_daily_orders
等于6,不应该被查询带走。 - 而这顿饭 'Fish and Chips'
today_orders
等于 2 并且max_daily_orders
等于 8 所以它应该被查询
如何改进我的查询以便比较这两个属性?
你可以只在 where 中输入一串查询内容,我通常使用这种方法,因为它让我觉得我在写简单的 SQL.
这应该适合你:
@meals = Meal.where("week_day = 1
AND vacation_mode = false
AND today_orders < max_daily_orders")