1

我正在尝试将一组参数传递给定义为这样的rails函数......

def test(*params)
    stuff
end

如果我通过以下

test :mark, :was, :here

或者

test :mark, :was, :here=>:today

一切安好。但是,当我这样做时...

test :mark, :was=>:really, :here

抛出一个错误。任何线索我要去哪里错?

M。

4

1 回答 1

1

如果最后一个参数是散列,则不必使用大括号,但如果散列不在参数列表的末尾,则确实需要大括号。在中间,Ruby 不知道逗号是表示下一个参数还是哈希中的下一项。所以你必须这样做:

test :mark, {:was=>:really}, :here
于 2012-04-27T06:59:52.823 回答