【发布时间】:2017-05-29 02:32:44
【问题描述】:
这应该很容易,但我找不到合适的解决方案。 对于第一级键:
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)
【问题讨论】:
标签: ruby-on-rails ruby hash send