相关疑难解决方法(0)

Ruby.Metaprogramming.class_eval

我的代码中似乎有一个错误.但是我无法找到它.

class Class
def attr_accessor_with_history(attr_name)
  attr_name = attr_name.to_s

  attr_reader attr_name
  attr_writer attr_name

  attr_reader attr_name + "_history"
  class_eval %Q{
   @#{attr_name}_history=[1,2,3]
  }

end
end

class Foo
 attr_accessor_with_history :bar
end

f = Foo.new
f.bar = 1
f.bar = 2
puts f.bar_history.to_s
Run Code Online (Sandbox Code Playgroud)

我希望它能返回一个数组[1,2,3].但是,它不返回任何东西.

ruby metaprogramming

0
推荐指数
2
解决办法
5955
查看次数

标签 统计

metaprogramming ×1

ruby ×1