是否有一个 ActiveRecord 设置允许我在将 ActiveRecord 对象序列化为 json 之前删除空值?
如果没有,最好的方法是什么?谢谢
是否有一个 ActiveRecord 设置允许我在将 ActiveRecord 对象序列化为 json 之前删除空值?
如果没有,最好的方法是什么?谢谢
您可以覆盖serializable_hash
模型中的方法
def serializable_hash(options)
super(options).select { |_, v| v }
end
顺便说一句,如果您要使用包含(例如Project.all.as_json(include: :tasks)
),那么您需要serializable_hash
在两个模型中都覆盖。
def serializable_hash(adapter_options = nil, options = {}, adapter_instance = self.class.serialization_adapter_instance)
super(adapter_options, options, adapter_instance).select { |_, v| v }
end
也许
@instance.attributes.delete_if { |k, v| v.nil? }.to_json