我有以下代码,用于将哈希集合转换为我的类上的方法(有点像Active Record)。我遇到的问题是我的setter不起作用。我对Ruby还很陌生,相信我已经有点迷失了。
class TheClass
def initialize
@properties = {"my hash"}
self.extend @properties.to_methods
end
end
class Hash
def to_methods
hash = self
Module.new do
hash.each_pair do |key, value|
define_method key do
value
end
define_method("#{key}=") do |val|
instance_variable_set("@#{key}", val)
end
end
end
end
end
我已经创建了方法并且在我的类中可以读取它们,但是设置它们却不起作用。
myClass = TheClass.new
item = myClass.property # will work.
myClass.property = item # this is what is currently not working.