【发布时间】:2020-05-13 17:16:44
【问题描述】:
我在我的 Rails API 中使用 Active Model Serializer,但无法让嵌套的序列化器工作(我相信是因为我有多个序列化器用于同一资源)。我的模型设置如下:
class Program < ActiveRecord::Base
acts_as_paranoid
has_many :check_ins
end
class CheckIn < ActiveRecord::Base
has_one :weigh_in, dependent: :destroy
end
class WeighIn < ActiveRecord::Base
belongs_to :check_in
end
在我的ProgramsController 我有以下内容:
def index
programs = Client.find(params[:client_id]).programs
render json: programs, status: :ok, each_serializer: API::ProgramSerializer, include: "**"
end
在我的API::ProgramSerializer 中,我有以下内容:
class API::ProgramSerializer < ActiveModel::Serializer
attributes :created_at, :position, :id
has_many :check_ins, each_serializer: API::CheckInsIndexSerializer
end
我遇到的问题是我有两个API::CheckInsIndexSerializer 和API::CheckInSerializer。尽管我指定我想使用API::CheckInsIndexSerializer,但include: "**" 似乎强制 Rails 使用API::CheckInSerializer。有没有解决的办法?
【问题讨论】:
标签: ruby-on-rails active-model-serializers