如何将rails活动资源对象转换为hash?

时间:2016-01-27 10:48:00

标签: ruby-on-rails activeresource

假设我有一些活动资源对象被提取如下:

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哈希?

2 个答案:

答案 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