假设我有一些活动资源对象被提取如下:
x = Resource.find(some_id)
远程服务器中的x有一些字段h
作为复杂的嵌套哈希,在这里表示为嵌套的活动资源对象,但是访问它是一项繁琐的任务,因此可以转换{{1哈希?我可以再做一次调用Resource.get(some_id),结果将是一个大的哈希,但这是有风险的,因为资源 - 理论上 - 可能在后续调用之间发生了变化,所以有没有办法将活动资源对象转换为哈希?
修改
有关更多说明,假设某些发票记录r [id = some_id]具有属性h
,这是一个值为extras
的哈希
然后,当通过活动资源获取此记录时,我们从extras字段获取以下结果, - 从响应中提取 - :
{:x=>1, :y=>2, :z=>{:a=>1, :b=>2}}
然后如何将此extras字段转换为ruby哈希?
答案 0 :(得分:2)
JSON.parse(x.to_json)
成功了。
答案 1 :(得分:0)
尝试:
x = Resource.find(some_id)
hash = OpenStruct.new(x).to_h
或
hash = OpenStruct.new(x.attributes).to_h