2012-12-26 54 views
0
对象序列化

(免责声明:新来这里的Rails)红宝石从Json的

说我有一个响应“ID”一个Rails的ActiveRecord型号:

User.first.id # => 22 

我的生活已经改变了,现在我需要通过JSON调用获得这个相同的对象,并且我想要最小的代码更改。

我这样做:

uri = URI.parse("http://localhost:3001/user/") 
uri.query = "query=id#{user_id}" 
@user = JSON.parse(open(uri).read) 

我现在可以做的:

@user["id"] 

然而,这是不够的,因为这意味着太多的变化。 有什么办法可以把它变成真正的用户对象吗?或者一个简单的行为(我可能会使用构造函数创建一个虚拟对象,但是我正在寻找能够帮助我的东西,并且我怀疑有一个简单的Rails方法)。

+0

这将有助于更多地了解你正在尝试做什么。您是通过json在两个rails应用之间传递用户?接收系统中的用户需要做什么才能使其成为AR对象? – NullRef

+0

我在两个分开的系统上有相同的ActiveRecord模型。我在一个系统上调用User.find(:id),to_json它,而不是想要在接收系统上重新构造/反序列化ActiveRecord模型,从JSON。我希望我可以做Model.build(json_obj) –

回答

0

我发现了一个可能的解决方案,这一问题:

https://github.com/sprysoft/json_object

不过,我意识到我真正需要的原始ActiveRecord的模式,而不是一个虚拟对象..

这就是说,我具体问题,上面的宝石是一个可能的解决方案。