活动模型序列化器0.9.4堆栈太深错误

时间:2016-03-05 05:43:07

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

我的应用程序中的serailizer看起来像这样

class ProgressSerializer < ActiveModel::Serializer
  attributes :id
  has_one :race
end

class RaceSerializer < ActiveModel::Serializer

  attributes :id
  has_many :progresses 
end

has_one和has_many一起给我错误堆栈级别太深。 我试过的事情。

配置/初始化/ active_model_intializer.rb

ActiveModel::Serializer.setup do |config|
  config.embed = :ids
  config.include = true
end

我尝试了第二件事

class RaceSerializer < ActiveModel::Serializer

  attributes :id
  has_many :progresses , :serializer => ProgressSerializer
end

class ProgressSerializer < ActiveModel::Serializer
  attributes :id
  has_one :race , :serializer => RaceSerializer
end

模型

class Progress < ActiveRecord::Base
    belongs_to  :race
end

class Race < ActiveRecord::Base
    has_many :progresses
end

1 个答案:

答案 0 :(得分:0)

您可以分享Model.rb个文件吗?

如果进度是主要的,那么种族下面,这个应该有效。

class ProgressSerializer < ActiveModel::Serializer
  attributes :id, :races
  has_many :races
end

class RaceSerializer < ActiveModel::Serializer
  attributes :id
end

然后尝试删除has_many:progress并添加has_one:race to race with attributes:id,:race