Как вычислить деление Ruby между целыми числами в переменных?

Вы можете преобразовать массив объектов arr в ActiveRecord :: Relation, как это (предполагая, что вы знаете, какой класс являются объектами, что вы, вероятно, делаете)

MyModel.where(id: arr.map(&:id))

Вы должны использовать where, но это полезный инструмент, который вы не должны неохотно использовать. И теперь у вас есть однострочное преобразование массива в отношение.

map(&:id) превратит ваш массив объектов в массив, содержащий только их идентификаторы. И передача массива в предложение where будет генерировать инструкцию SQL с IN, которая выглядит примерно так:

SELECT .... WHERE `my_models`.id IN (2, 3, 4, 6, ....

Имейте в виду, что порядок массива будет потерян - Но поскольку ваша цель состоит только в том, чтобы запустить метод класса в коллекции этих объектов, я предполагаю, что это не будет проблемой.

0
задан hsgubert 24 August 2012 в 15:40
поделиться