Я хочу выбрать элементы для моей Модели, соответствующие обоим условиям a
и b
, но условное значение b
зависит от значения a
этого конкретного элемента.
conditions_a = [1,2,3]
conditions_b_given_a = {1 => [11,12,13],
2 => [21,22,23],
3 => [31,32,33]}
Model.where(column_a: conditions_a,
column_b: conditions_b_given_a[:column_a] )
.order(:something)
.limit(100)
Конечно, я мог бы с готовностью загрузить все и применить условие b во второй операции, но это нарушило бы цель оператора limit (), который существует по соображениям производительности.
Как я могу указать условие, которое зависит от значения другого столбца внутри оператора where ()?