我对这个选项感到有点困惑......可以在下面的例子中找到
user = User.find(1)
user.as_json
# => { "user": {"id": 1, "name": "Konata Izumi", "age": 16,
"created_at": "2006/08/01", "awesome": true} }
ActiveRecord::Base.include_root_in_json = false
user.as_json
# => {"id": 1, "name": "Konata Izumi", "age": 16,
"created_at": "2006/08/01", "awesome": true}
http://rubydoc.info/gems/activemodel/3.1.3/ActiveModel/Serializers/JSON
为什么ActiveModel要求您使用ActiveRecord告诉它您不希望序列化对象的根目录中有基础对象?
我似乎无法让这个工作,目前我在做:
require "active_model"
ActiveRecord::Base.include_root_in_json = false
但它只是说它无法找到常量的“ActiveRecord”,这是有道理的,但这只是文档中的一个错字还是有一些真正的原因呢?由于ActiveRecord似乎处理数据存储问题,ActiveModel似乎正在处理增加简单模型......
答案 0 :(得分:1)
嗯... Rails source for active model有相同的例子。 你想在哪里使用它?在我的ActiveModels中,我通常会这样做:
class Foo
include ActiveModel::Serializers::JSON
# ... more includes
self.include_root_in_json = false
# ... model stuff
end