У меня есть область Rails 3, которая исключает массив идентификаторов.
Каков наилучший способ записи области, чтобы он ничего не делал, когда массив пуст и все еще связан с цепочкой? У меня в настоящее время есть это, что работает, но кажется немного хоккеем:
scope :excluding_ids,
lambda {|ids| ids.empty? ? relation : where('id not in (?)', ids) }
Если у меня нет бита "ids.empty?? Отношение:", когда id пуст, сгенерированный SQL
... ID not in (NULL) ...
который всегда ничего не возвращает. Так что-то вроде:
Model.excluding_ids([]).where('id > 0')
не возвращает результатов.