如何为方法动态创建参数?

Mas*_*ise 3 ruby arrays variables methods arguments

对于Ruby来说还是有些新手,我不知道如何做到这一点...假设我有一个方法可以获取可变数量的参数:

def mytest(*args)将args.to_json结束

显然我可以用我喜欢的任何东西来称它,例如:

mytest('one','two','three')

没问题.但我需要做的是用动态创建的参数集来调用它.例如,我从数据库中提取结果集,我不知道会有多少条目返回.假设我想收集结果id,并用它们调用mytest() - 我将如何构造传递给mytest()的参数集?

这似乎有点显而易见,但无论出于何种原因,事实并非如此.我意识到我可以改为编写mytest()来获取数组或Hash,但我实际上是在尝试在一个我没有编写的插件中调用一个方法.

Geo*_*Geo 13

我不确定我理解你的问题.您是否在询问如何将数组转换为方法的参数?读这个

假设你有这个:

a = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

和一个采用4个参数的方法,如:

def whatever(p1,p2,p3,p4)
  # do whatever you want with them here
end
Run Code Online (Sandbox Code Playgroud)

你可以调用这个方法,如下所示:

whatever(*a)
Run Code Online (Sandbox Code Playgroud)

并且数组的元素将以您希望的方式发送.