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_module
有 has_many
关联),但在某些 API 中我不需要'要添加课程数据。
谁能解释一下我该怎么做?
再创建一个没有has_many
的序列化器
class SimpleTrainingModuleSerializer < ActiveModel::Serializer
attributes :id, :name, :description, :status, :module_type
end
并在控制器中使用它
render json: @record, serializer: SimpleTrainingModuleSerializer
我在我的应用程序中使用 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_module
有 has_many
关联),但在某些 API 中我不需要'要添加课程数据。
谁能解释一下我该怎么做?
再创建一个没有has_many
class SimpleTrainingModuleSerializer < ActiveModel::Serializer
attributes :id, :name, :description, :status, :module_type
end
并在控制器中使用它
render json: @record, serializer: SimpleTrainingModuleSerializer