如何将多个参数作为数组传递给ruby方法?

我有一个像这样的帮助文件的方法

def table_for(collection, *args) options = args.extract_options! ... end 

我希望能够像这样调用这个方法

 args = [:name, :description, :start_date, :end_date] table_for(@things, args) 

这样我就可以dynamic地传递基于表单提交的参数。 我不能重写这个方法,因为我在太多的地方使用它,我还能怎么做呢?

Ruby很好地处理了多个参数。

这是一个很好的例子。

 def table_for(collection,* args)
   “Got#{collection}和#{args.join(',')}”
结束 
table_for(“one”)»“得到一个” table_for(“一”,“两”)»“得到一个和两个” table_for“one”,“two”,“three”»“得到一,二,三” table_for(“one”,“two”,“three”)»“得到一两个三” table_for(“one”,[“two”,“three”])»“得到一,二,三”

(输出剪切和irb粘贴)

只要这样调用它:

 table_for(@things, *args) 

* )运算符将执行该工作,而不必修改该方法。

 class Hello $i=0 def read(*test) $tmp=test.length $tmp=$tmp-1 while($i<=$tmp) puts "welcome #{test[$i]}" $i=$i+1 end end end p Hello.new.read('johny','vasu','shukkoor') # => welcome johny # => welcome vasu # => welcome shukkoor