说我有这个方法
def foo(bar1, bar2)
## code
end
我如何实现代码,以便在调用foo('hello', 'world')
时,foo
方法访问哈希,给出:
{
:bar1 => 'hello',
:bar2 => 'world'
}
是否有Ruby(Rails?)内置方法,或者我怎么写它?
答案 0 :(得分:1)
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
答案 1 :(得分:1)
def foo(bar1, bar2)
names = method(__method__).parameters.map{|e| e[1]}
Hash[names.zip(names.map {|name| eval(name)})]
end
不要那样做。这是丑陋和邪恶的。给我整个背景,你做错了。