Я получаю ответ в формате
#<Response:0x000... @first = "Charlie", @last=Kelly, ....
и мне нужно превратить это в хеш (для активного продавца). В настоящее время я перебираю переменные и делаю это:
response.instance_variables.each do |r|
my_hash.merge!(r.to_s.delete("@").intern => response.instance_eval(r.to_s.delete("@")))
end
Это работает, он будет производить {:first = "charlie", :last => "kelly"}
, но кажется немного хакерским и нестабильным. Есть ли лучший способ сделать это?
edit: я только что понял, что могу использовать instance_variable_get для второй части этого уравнения, но это все еще оставляет основную проблему.