У меня проблема с использованием where
и or
вместе.
Item.where(a: true)
.where("b>=?", 1)
.or(Item.where(c: true))
.where(d: true)
То, чего я пытаюсь достичь, - это после того, как первое условие, a: true
, найти, есть ли какие-либо элементы b >=?, 1
.если найдены какие-либо предметы, переходите к четвертому условию where(d:true)
, но если ничего не найдено, переходите к третьему условию or(Item.where(c: true)
, а если какие-то предметы обнаруживаются из третьего условия, переходите к четвертому условию .where(d:true)
.
Это то, чего я пытаюсь достичь, но, похоже, когда items
достиг третьего условия .or(Item.where(c: true))
, оно не прошло предыдущие условия.
Я добавил предыдущие условия в третье условие, например or(Item.where(a:true).where("b>=?",1).where(c:true))
, но есть ли лучший способ добиться этого?