То, что вы пытаетесь сделать (пытаясь использовать магическую переменную, называемую args, которая будет содержать все аргументы), не работает таким образом в Ruby.
Метод может иметь дополнительные аргументы:
def my_method(*args)
....
# the array args will have 0 or more elements, depending on how many
# were in the method invocation.
end
Но если у метода есть определенные (обязательные) аргументы, как в вашем примере, то другого способа получить их нет.
Добавлено Если вы хотите изменить определение вашего метода для использования обходного пути для именованных аргументов, тогда аргументы поступят в виде ассоциативного массива, и вы можете затем отправить их на ваш get_params_string
Или, лучше, переопределите ваш get_params_string
, чтобы получить список переменных arg
def self.get_params_str(*a)
str = ""
a.each do |a|
str = str + a.to_s
end
return str
end
# Then call it from your main method:
def self.createobj(api_key, amnt, commentstr, orderid,
order_creation_date, orderfullfilmentdate)
errorstr = get_params_str(api_key, amnt, commentstr, orderid,
order_creation_date, orderfullfilmentdate)
.....
end
См. Полезную запись