在ruby环境中,我有一个基于postgres表的活动记录模型,该表具有type
字段。
我需要序列化此模型的实例,并且我希望将type
的文本值作为序列化结果的一部分返回,但是.to_json()
不包含此字段。
我意识到这里存在一些有单表继承的活动记录魔法,但是是否可以实现输出type
字段的预期结果?
我们在这里使用STI,因此我无法破解该功能。我猜测没有办法,但也许有解决方法?
我确实找到了一种解决方法,即使用'方法' to_json中的语法
.to_json(:methods=>:type)
这样做很有效但感觉很脏 希望它可以帮助别人!
答案 0 :(得分:1)
您可以尝试在基础模型上覆盖as_json
方法:
def as_json(*)
previous = super
previous[:type] = type
previous
end