在ruby中生成参数的调用方法适用于1.8.7但不适用于1.9.3

时间:2015-06-23 13:38:02

标签: ruby-on-rails ruby ruby-1.9.3

这是我在ruby 1.8.7中工作的东西,但不再适用于1.9.3,而且我不确定是什么改变会导致失败。

以前,我有类似的东西

myFunction(submitArgs())

其中submitArgs是一个可以使用某些选项调用的辅助方法

def submitArgs(args={})
  #Some logic/manipulations
  ["Text", args]
end

然后使用第一个参数" Text"和第二个哈希来调用myFunction。现在在1.9.3中,正在使用" Text {}"作为一个大字符串。

有没有人知道导致这种情况的ruby版本之间发生了什么变化,以及是否有在1.9.3中返回参数数组的替代方法?

1 个答案:

答案 0 :(得分:2)

需要更改(使用github表示法):

- myFunction(submitArgs())
+ myFunction(*submitArgs)

[我假设] myFunction被声明为两个参数的原因:

def myFunction a1, a2

因此,数组必须在传递给它之前进行喷溅。我想知道这在1.8中是如何运作的。