首先,我在一个字段中推送我的数据库,将Ruby对象转换为JSON。 这个对象(例如)是这样的:
{ #<Project id: 16 ...> => {#<Task id: 122 ...> => {details: {:a => 180, :b => 220}, sub: {...}}}}
等等......这只是为了告诉你我有一个嵌套的哈希,里面有一些对象。
使用以下指令Model.create(field: my_hash.to_json, ...)
将此哈希值推送到JSON中的数据库中。接收此JSON哈希的数据库字段是一个字符串。
现在,当我想要检索所有这些数据时,我就这样做了:
JSON.parse(Model.find(id)[:field])
但这给了我作为字符串对象的键。 #<Project id: 16...>
变为"#<Project:0x000...>"
并且它是一个字符串。
有了这个我现在不可能做var.keys.first[:id] #which in my example should be 16
这样的事情,因为密钥已成为字符串而不再是Ruby对象。
是否可以按推送方式检索我的数据?