我正在尝试从散列(带有嵌套散列)生成 attr_reader,以便它自动镜像 instance_variable 的创建。
这是我到目前为止所拥有的:
data = {:@datetime => '2011-11-23', :@duration => '90', :@class => {:@price => '£7', :@level => 'all'}}
class Event
#attr_reader :datetime, :duration, :class, :price, :level
def init(data, recursion)
data.each do |name, value|
if value.is_a? Hash
init(value, recursion+1)
else
instance_variable_set(name, value)
#bit missing: attr_accessor name.to_sym
end
end
end
但我找不到这样做的方法:(