Я извлечение некоторые данные из базы данных, как показано ниже в моем файле рубина:Нарезка массив в Рубине
@main1= $connection.execute("SELECT * FROM builds
WHERE platform_type LIKE 'TOTAL';")
@main2= $connection.execute("SELECT * FROM builds
WHERE platform_type NOT LIKE 'TOTAL';")
После этого я совершаю хеширования и куча других вещей на этих результатах. Чтобы быть ясным, это не возвращает массив как таковой, но возвращает некоторый объект типа mysql2. Так что я просто сопоставить его с 2-х массивов безопасна:
@arr1 = Array.new
@arr1 = @main1.map
@arr2 = Array.new
@arr2 = @main2.map
Есть ли способ, чтобы избежать выполнения 2 различных запросов и получить все результаты в 2-х разных массивов, выполняя только один запрос. Я в основном хочу разбить результаты на 2 массива, первый из которых имеет platform_type = TOTAL и все остальное в другом.
Вы говорите, что используете рельсы, но вы не используете ORM? Любая конкретная причина? Также ваши вызовы '@arr = Array.new' излишни. –