Используйте звездочку, чтобы развернуть массив в отдельные компоненты в списке аргументов:
def print_num_args(*a)
puts a.size
end
array = [1, 2, 3]
print_num_args(array);
print_num_args(*array);
Напечатает:
1
3
В первом случае массив передается, во втором случае каждый элемент передается отдельно. Обратите внимание, что вызываемая функция должна обрабатывать переменные аргументы, такие как print_num_args, если она ожидает список аргументов фиксированного размера и получает больше или меньше ожидаемого, вы получите исключение.