我有一个模型,其数据在呈现为json时不应该包含.因此,我实现了类的as_json方法以适当地执行操作.问题是,当其他与此模型关联的模型呈现json时,我的自定义as_json没有被调用.

class Owner < ActiveRecord::Base
  has_one :dog

  def as_json(options={})
    puts "Owner::as_json"
    super(options)
  end  
end

class Dog < ActiveRecord::Base
  belongs_to :owner

  def as_json(options={})
    puts "Dog::as_json"
    options[:except] = :secret
    super(options)
  end  
end

Loading development environment (Rails 3.0.3)
ruby-1.9.2-p136 :001 > d = Dog.first
=> #<Dog id: 1, owner_id: 1, name: "Scooby", secret: "I enjoy crapping everwhere">
ruby-1.9.2-p136 :002 > d.as_json
Dog::as_json
=> {"dog"=>{"id"=>1, "name"=>"Scooby", "owner_id"=>1}}
ruby-1.9.2-p136 :004 > d.owner.as_json(:include => :dog)
Owner::as_json
=> {"owner"=>{"id"=>1, "name"=>"Shaggy", :dog=>{"id"=>1, "name"=>"Scooby", "owner_id"=>1, "secret"=>"I enjoy crapping everwhere"}}}

谢谢你的帮助

推荐答案

这是一个known bug英寸的导轨.(由于从以前的bug追踪器迁移到Github的问题,该问题被标记为已关闭,但从Rails 3.1开始,它仍然是一个问题.)

Json相关问答推荐

如何使用ChoETL将复杂的JSON转换为CSV

我发现GoFr响应总是包含在数据字段中,如何返回自定义响应?

解析SQL中的嵌套JSON

错误:在 NX 工作区中找不到模块../swagger.json

在 SQL 存储过程中使用参数 Select 值

正向闪烁后的微调值

我无法将来自 API 的数据显示到 FlatList 中,但我在 console.log 中看到了它.问题是什么?

Powershell 7.2:ConvertFrom-Json - 日期处理

向 JSON 文件添加注释

SwiftUI:如何使用 0 索引数组键为 JSON 添加类型

如何用 Xidel 正确读取这个 JSON 文件?

错误字符串的长度超过了maxJsonLength属性设置的值

为什么在测试 RSPEC 时 JBuilder 不返回 JSON 中的响应正文

如何在java中比较来自JsonObject的空值

如何将 Swift 对象转换为字典

Sequelize - 如何仅返回数据库结果的 JSON 对象?

PHP json_encode json_decode UTF-8

如何从 MVC 控制器返回 Json 对象以查看

如何从 MySQL 中检索 JSON 数据?

添加json文件注释