Ruby on rails 有没有一种方法可以在rails序列化程序中对多个属性应用条件

Ruby on rails 有没有一种方法可以在rails序列化程序中对多个属性应用条件,ruby-on-rails,active-model-serializers,Ruby On Rails,Active Model Serializers,我想知道是否有更简单的方法可以对具有多个属性的序列化程序应用任何条件(如果我不够清楚,请提前道歉),例如: class AbcSerializer < ActiveModel::Serializer attributes :a, :b, :c, if: :condition? def condition? true end end 类AbcSerializer

我想知道是否有更简单的方法可以对具有多个属性的序列化程序应用任何条件(如果我不够清楚,请提前道歉),例如:

class AbcSerializer < ActiveModel::Serializer
  attributes :a, :b, :c, if: :condition?

  def condition?
    true
  end
end
类AbcSerializer
这应该根据条件得到所有a、b和c这是一种方法:

class AbcSerializer < ActiveModel::Serializer
  attributes :a, :b, :c

  def attributes(*args)
    hash = super
    hash.delete_if { |k, _| %i[a b c].include? k } unless condition?
    hash
  end

  def condition?
    true
  end
end
类AbcSerializer 我还没有测试过它,但应该可以在有/没有小改动的情况下使用