如何在Ruby中将数组元素作为单独的方法参数传递?

Dra*_*aer 1 ruby ruby-on-rails

场景:方法以这种方式接受参数

def my_method(model_name, id, attribute_1, attribute_2)
  # ...
end
Run Code Online (Sandbox Code Playgroud)

所有参数都是未知的,所以我从对象的类名中获取模型名称,并且我从该类中获取的属性作为数组返回.

问题:我有一个数组["x", "y", "z"].我需要从每个数组中取出项目并将它们传递到模型之后的方法参数中,如上所示.

是否有可能从阵列中"删除括号"可以这么说,但保持物品和它们的顺序?

Luk*_*yka 7

是的,只需*在数组前使用:

my_method(model_name, *["x", "y", "z"])
Run Code Online (Sandbox Code Playgroud)

它会导致:

my_method(model_name, "x", "y", "z")
Run Code Online (Sandbox Code Playgroud)

*是一个splat运算符.