Вы можете объединить массивы и повторить результат:
(@users + @users1 + @users2).each do |user|
...
end
Может быть заманчиво использовать flatten, но вы должны быть осторожны с этим. Простой вызов без аргументов flatten
не ведет себя так, как вы ожидаете, если какие-либо элементы любого массива сами являются массивами:
users, users1, users2 = [1,2], [ [3,4], [5,6] ], [ 7,8]
puts [users,users1,users2].flatten.inspect
# Will print [1, 2, 3, 4, 5, 6, 7, 8]
# Two small arrays are smashed!!!
Однако, как указывает jleedev в одном из комментариев, функция flatten
в Ruby может принимать целочисленный аргумент, определяющий максимальный уровень, на который массивы будут разбиваться, поэтому:
puts [users,users1,users2].flatten(1).inspect
# Will print [1, 2, [3, 4], [5, 6], 7, 8]
# Just as planned.