-6ren">
gpt4 book ai didi

ruby-on-rails - 使用 ruby​​ 将多个实例变量转换为散列的更好方法?

转载 作者:数据小太阳 更新时间:2023-10-29 07:13:04 26 4
gpt4 key购买 nike

我收到格式为

的回复
 #<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"}, 但它似乎有点 hacky 和不稳定。有更好的方法吗?

编辑:我刚刚意识到我可以使用 instance_variable_get 作为该等式的第二部分,但这仍然是主要问题。

最佳答案

Rails 在 Object 上有一个名为 instance_values 的方法就是为了这个。这是 code on GitHub .

class C
def initialize(x, y)
@x, @y = x, y
end
end

C.new(0, 1).instance_values # => {"x" => 0, "y" => 1}
C.new(0, 1).instance_values.symbolize_keys # => {:x => 0, :y => 1}

关于ruby-on-rails - 使用 ruby​​ 将多个实例变量转换为散列的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7638982/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com