0

n 個の引数を取るメソッドを呼び出そうとしていますが、引数は n 個の引数を持つメソッドを呼び出すメソッドにハッシュとして渡されますが、ハッシュは別のパラメーターのように見えます。メソッドが正しく呼び出されるようにパラメータのハッシュを解除するにはどうすればよいですか?

一部のコードは、これを言葉だけで説明するのが難しいためです。

呼び出したいメソッド: method(p[:method]).call(p[:action], p[:params])
p[:method]この場合は:post
p[:action]is is :create
p[:params]is{:my_object => {my object's params}}

だから、解きほぐすと、次のように なり
post(:create, {:my_object => {my object's params}}) ます
:
post(:create, :my_object => {my object's params})


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とハッシュの 2 つの属性を method にパスします。

とにかく、キーが 1 つしかない場合は、この醜いトリックを実行できますparams

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