gpt4 book ai didi

ruby-on-rails - Rails ActiveModel 序列化程序呈现非空属性

转载 作者:行者123 更新时间:2023-12-04 02:52:15 26 4
gpt4 key购买 nike

我想使用一个呈现非空属性的序列化程序

     class PersonSerializer < ActiveModel::Serializer
attributes :id, :name, :phone, :address, :email
end

这可能吗。

非常感谢。

解决方案:
 class PersonSerializer < ActiveModel::Serializer
attributes :id, :name, :phone, :address, :email
def attributes
hash = super
hash.each {|key, value|
if value.nil?
hash.delete(key)
end
}
hash
end
end

最佳答案

从版本 0.10.x active_model_serializer gem,你必须重写方法serializable_hash而不是 attributes :

# place this method inside NullAttributesRemover or directly inside serializer class
def serializable_hash(adapter_options = nil, options = {}, adapter_instance = self.class.serialization_adapter_instance)
hash = super
hash.each { |key, value| hash.delete(key) if value.nil? }
hash
end

关于ruby-on-rails - Rails ActiveModel 序列化程序呈现非空属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27167532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com