【问题标题】:ActiveModelSerializers in railsRails 中的 ActiveModelSerializers
【发布时间】:2019-03-04 07:37:45
【问题描述】:

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

谁能解释一下我是怎么做到的?

【问题讨论】:

    标签: ruby-on-rails active-model-serializers


    【解决方案1】:

    只需再创建一个不带has_many 的序列化程序

    class SimpleTrainingModuleSerializer < ActiveModel::Serializer
      attributes :id, :name, :description, :status, :module_type
    end
    

    并在控制器中使用它

    render json: @record, serializer: SimpleTrainingModuleSerializer
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多