rails 中的 ActiveModelSerializers

ActiveModelSerializers in rails

我在我的应用程序中使用 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 中,我需要添加课程数据(与 training_modulehas_many 关联),但在某些 API 中我不需要'要添加课程数据。

谁能解释一下我该怎么做?

再创建一个没有has_many

的序列化器
class SimpleTrainingModuleSerializer < ActiveModel::Serializer
  attributes :id, :name, :description, :status, :module_type
end

并在控制器中使用它

render json: @record, serializer: SimpleTrainingModuleSerializer