例如: 有API将数据提供给第三方服务和我们的客户端应用程序(Angular或React)。 / tickets端点在客户端应用的不同页面上使用,我们有可能将请求发送到同一端点。但是有严格的规则:对于这些页面,不必发送涵盖所有情况的通用规则集。不同的页面应使用不同的序列化器。
问题是:如何消除数据模型相同但序列化字段不同的许多不同的api端点(每个页面)?
答案 0 :(得分:0)
可以使用不同的方式来完成,这就是我将使用的方式 ,通过使用活动模型序列化程序,您可以指定要使用的序列化程序
render json: @post, serializer: PostPreviewSerializer
然后您可以使它动态化
render json: @post, serializer: suitable_serializer
并定义私有方法
def param_identfier
# here permit only the possible values for the param used
end
def suitable_serializer
"#{param_identfier}_serializer".classify.constantize
# so you get the Serializers class you have defined
# so if param_identfier = hello it will be 'HelloSerializer'
end