如何使用ActiveRecord的.build方法并以JSON格式传入属性?

时间:2010-11-23 16:16:30

标签: ruby-on-rails json activerecord

我正在以JSON格式从消息队列中取出记录,并且如果我可以简单地传入记录并构建对象,则想要使用ActiveRecord的.build方法。

我该怎么做?这种方法有什么缺点吗?

1 个答案:

答案 0 :(得分:1)

原则上你可以使用YourModel.new.from_json(json_string)但是它的行为取决于布尔值ActiveModel::Base.include_root_in_json。如果你的json是一个简单的哈希/对象,那么首先将其设置为false;如果你的json是to_json生成的嵌套哈希(默认情况下再次),则将其保留为true(默认值)。

所有方法都是将json解码为哈希并调用self.attributes = hash,所以你可以自己轻松地做到这一点。

关于缺点,这个过程确实没有任何具体内容。你基本上在标准的create控制器方法中做了同样的事情,充满了验证,attr_accessible限制等等。