1
Rails 5アプリケーションでは、アクティブモデルシリアライザ0.10.0.rc4
を使用しています。私はjsonハッシュでリレーションを含める必要があります。アクティブモデルシリアライザとの関連付け
私はこのシリアライザ持っている:
class GroupSerializer < ActiveModel::Serializer
attributes :id, :name, :subscription_ids, :nb_places, :description,
:schedule, :course_id
end
そして、私はこのようにそれを使用しています:私はなぜ理解していない
{"group"=>{:id=>1, :name=>"12", :subscription_ids=>[1, 2, 3], :nb_places=>12, :description=>nil, :schedule=>"12", :course_id=>1}}
:
resource = Group.all
ActiveModel::Serializer.serializer_for(resource).new(resource, include: :subscriptions).as_json
そして、私はこれを持っているがサブスクリプションは含まれていません。シリアライザではhas_many
を使用したくないので、複数のルールがあるときに無限ループが発生します。
{"group"=>{:id=>1, :name=>"12", :subscription_ids=>[1], :nb_places=>12, :description=>nil, :schedule=>"12", :course_id=>1, :subscriptions=>[{:id=>1,:name=>'something'}]}
私は何をすることができます。
私はこのような何かをしたいですか?
申し訳ありませんが、私は明確ではないワスト。私はsubscription_idsを持っていますが、購読データはありません。私は質問を更新する。 – Dougui
@Dougui私は自分の答えを更新しました。 – miligraf
私はそれが正しいと思います。これは 'object.subscriptions.pluck([:id、:name])'で動作します。 'as_json'メソッドのように' include'のようなものを使うのが好きですが、もっと良い方法がない場合はあなたのソリューションを使います。ありがとう。 – Dougui