如何返回'键入'来自ruby中activerecord的to_json中的字段?

时间:2014-05-06 15:22:38

标签: ruby activerecord

在ruby环境中,我有一个基于postgres表的活动记录模型,该表具有type字段。

我需要序列化此模型的实例,并且我希望将type的文本值作为序列化结果的一部分返回,但是.to_json()不包含此字段。

我意识到这里存在一些有单表继承的活动记录魔法,但是是否可以实现输出type字段的预期结果?
我们在这里使用STI,因此我无法破解该功能。我猜测没有办法,但也许有解决方法?

我确实找到了一种解决方法,即使用'方法' to_json中的语法

.to_json(:methods=>:type)

这样做很有效但感觉很脏 希望它可以帮助别人!

1 个答案:

答案 0 :(得分:1)

您可以尝试在基础模型上覆盖as_json方法:

def as_json(*)
  previous = super
  previous[:type] = type
  previous
end