メソッドに渡す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 メソッドを使用する方が便利です。