使用Active Model Serializers的关联出错

时间:2013-05-29 10:46:27

标签: active-model-serializers

当渲染具有嵌套关联的模型的json时,我收到以下错误:

undefined method `serializable_hash' for #<ActiveModel::ArraySerializer:0x007fe761592d88>

这是我的代码:

class EventSerializer < ActiveModel::Serializer
  attributes :id, :name, :date

  has_many :markets
end

class MarketSerializer < ActiveModel::Serializer
  attributes :id, :bet_limit_time

  has_many :options
end

class OptionSerializer < ActiveModel::Serializer
  attributes :id, :name, :odds
end

渲染选项关联时会出现错误。

这是一个非常简单的案例,但我没有发现它的问题。

1 个答案:

答案 0 :(得分:0)

我认为拥有名为options的属性是个问题。见https://stackoverflow.com/a/16005874/157943

  

“事实证明,使用:option作为属性名称会导致冲突。可能还有其他冲突的名称。要小心命名空间!”

除了重命名options关联之外,不确定如何修复它(可能你可以通过覆盖#attributes手动构建它并手动构建哈希?)