本文介绍了Ruby将对象转换为散列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我有一个 Gift
对象,其中 @name =book
& @price = 15.95
。在Ruby中,将其转换为哈希 {name:book,price:15.95}
,而不是Rails的最好方法是什么?(尽管也可以自由地给出Rails的答案) ?
Let's say I have a Gift
object with @name = "book"
& @price = 15.95
. What's the best way to convert that to the Hash {name: "book", price: 15.95}
in Ruby, not Rails (although feel free to give the Rails answer too)?
推荐答案
class Gift
def initialize
@name = "book"
@price = 15.95
end
end
gift = Gift.new
hash = {}
gift.instance_variables.each {|var| hash[var.to_s.delete("@")] = gift.instance_variable_get(var) }
p hash # => {"name"=>"book", "price"=>15.95}
each_with_object
:
gift = Gift.new
hash = gift.instance_variables.each_with_object({}) { |var, hash| hash[var.to_s.delete("@")] = gift.instance_variable_get(var) }
p hash # => {"name"=>"book", "price"=>15.95}
这篇关于Ruby将对象转换为散列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!