ruby-on-rails - 有没有办法在rails序列化程序中对多个属性应用条件
问题描述
我想知道是否有一种更简单的方法可以在具有多个属性的序列化程序上应用任何条件(如果不够清楚,请提前抱歉),例如:
class AbcSerializer < ActiveModel::Serializer
attributes :a, :b, :c, if: :condition?
def condition?
true
end
end
这应该根据条件得到所有 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
我尚未对其进行测试,但应该可以使用/不进行细微更改。
推荐阅读
- azure - 用于 OneDrive for business 代码流的重定向 url 是什么?
- firebase - Google Analytics 事件参数仅显示在过去 30 分钟内的事件中
- .net-core - 通过自定义 NuGet 包向 appsettings.json 添加日志记录条目
- javascript - 创建基于 API 的星级评分系统
- spring-boot - 如何使用连接表加载相互关系@OneToMany的2个实体的完整图表
- azure-functions - azure 函数应用程序配置中的 APPINSIGHTS_INSTRUMENTATIONKEY
- charts - 仅部分标签的 chart.js 行
- azure - 如何在 Azure 中删除服务器时发出警报?
- r - 如何在 R 中确定日期间隔是否与数据框中同一个人的另一个日期间隔重叠?
- c# - 尝试在 websocket 消息事件中时无法实例化预制件