Рельсы активной записи: взаимозависимые условия, где селектор - PullRequest
0 голосов
/ 02 мая 2019

Я хочу выбрать элементы для моей Модели, соответствующие обоим условиям 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 ()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...