Rubyでアクセサーメソッドを動的に呼び出すにはどうすればよいですか? ...私は、変数を読み取ることObject.sendメソッドを使用することができますRubyでアクセサーメソッドを動的に呼び出す方法
class Test_Class
attr_accessor :a, :b
end
instance.a = "value"
puts(instance.send("a"))
# => value
しかし、私はに作成しようと苦労している:ここで
は、例えば、クラスのそれ。これらのスロー "の引数の数が間違って(0 1)(例外ArgumentError)"
instance.send("a", "value")
と
instance.method("a").call("value")
は私を助けてくださいStackOverflowの!
素晴らしい作品を、!私は等号がメソッド名の一部だと思いますか? –
はい、Rubyでsetterメソッドを定義するための従来の方法と同じ記号です。 私は文字列ではなくシンボルを使用します。 'instance.send(:a =、" value ")' –
うん。 attr_accessorは2つのメソッドを作成します: def v; @v; end および def v =(値); @ v =値; end – Angela