Ruby 在方法中分配哈希值

Ruby 在方法中分配哈希值,ruby,parameters,Ruby,Parameters,说我有这个方法 def foo(bar1, bar2) ## code end 如何实现代码,以便在调用foo('hello','world')时,foo方法访问散列,给出: { :bar1 => 'hello', :bar2 => 'world' } 是否有Ruby(Rails?)内置方法,或者如何编写它 def foo(bar1, bar2) {bar1: bar1, bar2: bar2} end 如果塞尔吉奥提到的是问题的意图,那么 def foo(b

说我有这个方法

def foo(bar1, bar2)
  ## code
end
如何实现代码,以便在调用
foo('hello','world')
时,
foo
方法访问散列,给出:

{
  :bar1 => 'hello',
  :bar2 => 'world' 
}
是否有Ruby(Rails?)内置方法,或者如何编写它

def foo(bar1, bar2)
  {bar1: bar1, bar2: bar2}
end
如果塞尔吉奥提到的是问题的意图,那么

def foo(bar1, bar2)
  Hash[method(__method__).parameters.map{|_, k| [k, eval(k.to_s)]}]
end

不要那样做。它丑陋邪恶。告诉我全部情况,你做错了什么。

你为什么需要它?为什么不首先传递一个散列呢?我认为OP希望自动发现参数名称并将它们与值配对。不是这个,我明白了。那么问题就不清楚了。如果是这样的话,那么问题就接近了。谢谢,我会接受你的建议。当我能清楚地重新表述我的问题时,我会回来的。
def foo(bar1, bar2)
  names = method(__method__).parameters.map{|e| e[1]}
  Hash[names.zip(names.map {|name| eval(name)})]
end