我正在我的应用程序中使用active_model_serializers
(用于API):
class TrainingModuleSerializer < ActiveModel::Serializer
attributes :id, :name, :description, :status, :module_type
has_many :courses, serializer: CourseSerializer
end
class CourseSerializer < ActiveModel::Serializer
attributes :id, :name
end
def training_module_list
@training_modules = TrainingModule.where(tenant_id: 1)
render :json => @training_modules
end
在某些API中,我需要添加课程数据(与has_many
有training_module
关联),但是在某些API中,我不想添加课程数据。
有人可以解释我该怎么做吗?
答案 0 :(得分:3)
只需再创建一个没有has_many
的序列化器
class SimpleTrainingModuleSerializer < ActiveModel::Serializer
attributes :id, :name, :description, :status, :module_type
end
并在控制器中使用它
render json: @record, serializer: SimpleTrainingModuleSerializer