它應該很容易,但我找不到合適的解決方案。 爲第一級按鍵:如何在Ruby hash中動態設置嵌套鍵值
resource.public_send("#{key}=", value)
但foo.bar.lolo
?
我知道,我能得到它像下面這樣:
'foo.bar.lolo'.split('.').inject(resource, :send)
或
resource.instance_eval("foo.bar.lolo")
,但如何將值設置爲最後一個變量假設我不知道該嵌套級,它可能是第二或第三。
有沒有一個通用的方法來做到這一點,所有級別? 我的例子,我可以做如下所示:
resource.public_send("fofo").public_send("bar").public_send("lolo=", value)
'resource.public_send(「#{key} =」,value)'不會在散列中設置任何內容。 – mudasobwa
不,它不適用於內嵌對象的嵌套鍵。 所以它爲'obj.fofo'工作,但它從來沒有爲'bject.fofo.lolo'工作,它給出了未定義的方法 – user181452
請寫一些事實和信息不僅批評:)這是網站的重點,而不是炫耀你知道,我不知道。告訴我我的錯誤,這比完全無用的評論要好得多。我無法做任何事情。 – user181452