1

ネストされた関連付けを持つモデルの 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

オプションの関連付けをレンダリングするときにエラーが表示されます。

非常に単純なケースですが、問題はありませんでした。

4

1 に答える 1

0

という名前の属性を持つことに問題があると思いますoptionshttps://stackoverflow.com/a/16005874/157943を参照してください。

「プロパティ名として :option を使用すると競合が発生することが判明しました。競合する名前は他にもあると思われます。名前空間に注意する必要があります!」

関連付けの名前を変更する以外に修正する方法がわからないoptions(おそらく#attributes、ハッシュを手動でオーバーライドして構築することで、手動で構築できますか?)

于 2013-11-21T11:59:52.807 に答える