2015-05-09 67 views
1

我有一個類的實例列表,我有一個散列,我想要應用到這些實例的變化。我不知道如何訪問成員變量,我在變更列表中有哪些名稱。如何使用訪問器訪問成員變量哪個名稱正在Ruby中的變量中傳遞?

E.g.

class Foo 
    attr_accessor: foo 
    def initialize value 
    @foo = value 
    end 
end 

f = Foo.new("bar") 

我能明顯訪問@foof.foo,但說我有像changes = {"foo" => "baz"}形式更改列表。

現在我不知道wheter有一種方法可以做這樣的事情:

changes.each do |k,v| 
    f.k = v 
end 

f.foo改爲"baz"

回答

1

send方法可以幫助您動態地分配屬性。

changes.each do |k,v| 
    f.send("#{k}=", v) 
end