0

我正在尝试调用一个带有 n 个参数的方法,并将参数作为散列传递给调用带有 n 个参数的方法的方法,但散列看起来就像另一个参数。如何取消对参数的哈希处理,以便正确调用该方法?

一些代码,因为这很难用文字来解释:

我要调用的方法: method(p[:method]).call(p[:action], p[:params])
p[:method]在这种情况下是:post
p[:action]is :create
p[:params]is{:my_object => {my object's params}}

所以,拆开来看,它看起来像这样:
post(:create, {:my_object => {my object's params}}) # current
但它应该是什么样子,是这样的:
post(:create, :my_object => {my object's params}) #desired


如何更改 method(p[:method]).call(p[:action], p[:params])才能获得所需的方法调用?

4

1 回答 1

1

实际上

post(:create, {:my_object => {my object's params}})

post(:create, :my_object => {my object's params})

是相同的结构。

在这两种情况下,您都会将两个属性传递给方法post:符号:create和哈希。

无论如何,如果你只有一个键,你可以做这个丑陋的把戏params

method(p[:method]).call(p[:action], p[:params].keys.first => p[:params].values.first)
于 2012-04-06T17:27:03.217 回答