假设我有一个属于用户的模型帖子。为了转换为json,我做了如下操作
@reply.to_json(:include=>;{:user=>;{:only=>;[:email,:id]},
:only=>;[:title,:id])
但是,我想为此设置一些默认值,这样我就不必指定:仅限每次。我正在尝试覆盖as_json以实现这一点。当我在用户模型中添加as_json时,当我添加@User.to_json时会调用它,但当@reply.to_json中包含用户时,会忽略我覆盖的User as_json
我该怎么做
谢谢
您可以通过覆盖模型中的serializable_hash
来实现这一点,如下所示:
类回复<;ActiveRecord::Base
def序列化_散列(选项={})
选项={
:include=>;{:user=>;{:only=>;[:email,:id]},
:only=>;[:title,:id]
}.更新(选项)
超级(选项)
终止
终止
这将影响所有可序列化的方法,包括serializable_hash
、to_json
和to_xml