我有一个创建对象的类。我已经为该类创建了 getter/setter 方法。
Class Test
attr_accessor :method1, :method2, :method3, :method4
我已经从该类创建了几个实例,并将它们附加到一个列表中
@object_array = [obj1, obj2, obj3]
我有一个包含键和值的字典。键具有与测试类中的实例变量相同的字符串值。(例如,“method1”以 :method1 的形式存在)我想将这些键作为 getter 方法访问。
@method_hash = {'method1' => ['data1','data2'], 'method2' => ['data3','data4']}
我希望这行得通,但事实并非如此。我究竟做错了什么?
我应该提到,下面的方法发生在一个类中,@object_list 和@method_list 本身就是第二个类的实例变量。(这可能与解决问题无关,但想提一下以防万一..)
block (2 levels) in func1': undefined method `key' for #<Obj:0x007ffbe1061870> (NoMethodError)
def func1
@object_array.each do |o|
@method_hash.each do |key, value|
puts o."#{key}"
end
end
end
我尝试使用 .to_s, .to_sym 让它工作但没有运气。