по моему мнению, вы не должны использовать такой стиль инициализации, потому что он очень подвержен ошибкам
интерфейс класса должен быть явным и видимым с первого взгляда, поэтому вместо
def method(array_of_attributes)
придерживайтесь
def method(meaningful_name_1, meaningful_name_2, options={})
так как тогда гораздо легче увидеть, что метод ожидает как от автоматически сгенерированных документов, так и от просмотра определения метода
также нет ничего плохого в передаче массива атрибутов методу, если это важно для вас:
def method_one
arguments_for_method_two = [name, description, status]
method_two(*arguments_for_method_two)
end
def method_two(name, description, status)
# blah ...
end