我有一个类的实例列表,我有一个哈希,其中包含我想要应用于这些实例的更改。我无法想象如何在变更列表中访问成员变量的名称。
E.g。
class Foo
attr_accessor: foo
def initialize value
@foo = value
end
end
f = Foo.new("bar")
我可以使用@foo
显然访问f.foo
,但我说我有changes = {"foo" => "baz"}
等格式的更改列表。
现在我想知道有办法做这样的事情:
changes.each do |k,v|
f.k = v
end
将f.foo
更改为"baz"
。
答案 0 :(得分:1)
send
方法可以帮助您动态分配属性。
changes.each do |k,v|
f.send("#{k}=", v)
end