0

ActiveRecord オブジェクトを json にシリアル化する前に null 値を削除できるようにする ActiveRecord 設定はありますか?

そうでない場合、これを行う最善の方法は何ですか? ありがとう

4

2 に答える 2

4

serializable_hashモデル内でメソッドをオーバーライドできます

def serializable_hash(options)
  super(options).select { |_, v| v }
end

ちなみに、インクルード (例: ) を使用する場合は、両方のモデルでProject.all.as_json(include: :tasks)オーバーライドする必要があります。serializable_hash

更新: バージョン 0.10+

def serializable_hash(adapter_options = nil, options = {}, adapter_instance = self.class.serialization_adapter_instance)
  super(adapter_options, options, adapter_instance).select { |_, v| v }
end
于 2012-11-26T09:42:26.057 に答える
1

多分

@instance.attributes.delete_if { |k, v| v.nil? }.to_json
于 2012-11-26T00:54:57.010 に答える