2014-03-26 31 views
0

我有一個紅寶石對象,說... myobject和一個散列,myhash值{op1:'something',op2:'something2'}。使用散列應用方法。

是否有紅寶石的方法,讓我中這麼做,

myobject.the_method(myhash) 

,使其上班,如果我這樣做,

myobject.op1 'something' 
myobject.op2 'something2' 

這可以用myhash.each進行,並myobject.send,但有沒有一種方法可以做到這一點?主動支持解決方案可以接受

回答

3

在Active Support中沒有一種方法可以做到這一點。我建議eachsend

hash.each do |method, arg| 
    obj.public_send(method, arg) 
end 
+3

還有'public_send'這隻會調用公共方法。 – blom

+0

Thanks @blom!我總是忘記'public_send'。 –