Ошибка с ассоциациями с использованием 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

Ошибка появляется при рендеринге ассоциации опций.

Это довольно простой случай, но я не нашел в нем никаких проблем.


person Gawyn    schedule 29.05.2013    source источник
comment
Вы с этим чего-нибудь добились? Есть такая же проблема.   -  person mfaerevaag    schedule 10.09.2013


Ответы (1)


Я думаю, что это проблема с атрибутом с именем options. См. https://stackoverflow.com/a/16005874/157943:

«Оказывается, использование :option в качестве имени свойства вызывало конфликты. Вероятно, есть и другие конфликтующие имена. Нужно быть осторожным с пространством имен!»

Не знаете, как это исправить, кроме переименования ассоциации options (возможно, вы могли бы создать ее вручную, переопределив #attributes и создав хэш вручную?)

person gmcnaughton    schedule 21.11.2013