我想在 AR 模型上调用 to_json 时修改类名。
IE。
Book.first.to_json
#=> "{\"book\":{\"created_at\":\"2010-03-23
Book.first.to_json(:root => 'libro')
#=> "{\"libro\":{\"created_at\":\"2010-03-23
有没有办法做到这一点?
最佳答案
要与 Rails 3 兼容,请覆盖 as_json
而不是 to_json
.它是在 2.3.3 中引入的:
def as_json(options={})
{ :libro => { :created_at => created_at } }
end
确保
ActiveRecord::Base.include_root_in_json = false
.当您调用 to_json
, 幕后 as_json
用于构建数据结构,ActiveSupport::json.encode
用于将数据编码为 JSON 字符串。
关于ruby-on-rails - 覆盖 as_json 或 to_json 模型类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2556468/