Как мне динамически добавить attr_reader

Я ожидаю, что следующий код будет работать, как ожидалось, но он дает мне NoMethodError (закрытый метод `foo ', вызываемый для #

class MyClass
end

my_object = MyClass.new

my_object.instance_variable_set(:@foo, "bar")
MyClass.send("attr_reader", :foo)

puts my_object.foo

Проблема в Я использую буквально идентичный код в большом приложении, и он работает именно так, как я ожидал, но когда я упрощаю его до этого самого простого примера, он терпит неудачу.

(Я понимаю, что есть много других способов сделать то, что я делаю в Ruby)

17
задан Josh Lee 31 March 2011 в 22:41
поделиться