我正在尝试根据我传递给其方法MyObject
的哈希来动态定义已初始化的 Ruby 对象上的方法。在方法的主体中,我有以下内容:my_hash
initialize
initialize
my_hash.each do |key|
class << self
define_method(key.underscore.to_sym) do
my_hash[key]
end
end
end
这失败了undefined local variable or method 'key' for #<Class:#<MyObject:0x007fc7abw0cra0>>
。任何想法为什么?
它my_hash
是由带有许多骆驼键的 json 响应组成的,因此使用简单的 ruby 方法来获取我想要的值会更方便。