当渲染具有嵌套关联的模型的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
渲染选项关联时会出现错误。
这是一个非常简单的案例,但我没有发现它的问题。
答案 0 :(得分:0)
我认为拥有名为options
的属性是个问题。见https://stackoverflow.com/a/16005874/157943:
“事实证明,使用:option作为属性名称会导致冲突。可能还有其他冲突的名称。要小心命名空间!”
除了重命名options
关联之外,不确定如何修复它(可能你可以通过覆盖#attributes
手动构建它并手动构建哈希?)