次のコードがあります。
class Dog
def initialize(attributes = {})
attributes.each do |attr, value|
send("#{attr}", value)
end
end
end
dog = Dog.new({:talk => 'bruuuf'})
そして、initialize': undefined method `talk' for # (NoMethodError) でブロックを取得します。
send は次のようなことをしているはずではありません:
dog.talk = bruuuf
なぜそうさせてくれないのですか?また、これはインスタンス変数を設定しませんが、インスタンス メソッドを作成します。右?