【发布时间】:2011-12-02 08:23:41
【问题描述】:
我有两个班级,Foo 和 Bar。 Foo has_many 吧。 Bar 实际上是共享 STI 表的几个类的超类。
我想转储我的 Foo 记录,包括它们相关的 Bars。为此,我调用了
Foo.all.to_json(:incude => :bars)
最初的问题是我希望能够区分不同种类的 Bar 类。 Rails 通过 Bar 表中的 type 列进行区分,但该列不包含在 Ber 记录的 json 序列化中。
所以,我在 Bar 类中覆盖了 to_json 以包含 type 属性。当我在 Bar 的实例上调用 to_json 时,我得到了新的结果,但是当我在 Foo 上调用 to_json 并包含它的 Bars 时,我得到了旧的 to_json(即不包括 type 属性)。
我已经放弃了这一点,并打算采用不同的方法,但我仍然对这里发生的事情感到好奇。也许我应该使用 as_json 而不是 to_json?我还是不明白这两种方法的区别。
【问题讨论】:
标签: ruby-on-rails json serialization associations