1

jbuilderからactive_model_serializers(AMS v0.9)に移行する際に問題があります。 Previus jsonを構築するには、シリアライザに引数として渡す必要がある別のオブジェクトが必要です。rails gemでシリアライザに引数を渡すactive_model_serializers

私はいくつかのオプションがあることを見てきましたが、何も私のために働いていません。

def show 
    serialized_profile = ProfileSerializer.new(@profile, root: false, 
                 scope: current_relationship, 
                 couple_ser: @couple, 
                 partners_ser: @partners) 
    respond_to do |format| 
    format.html 
    format.json { render json: serialized_profile } 
    end 
end 

@profile@couple@partnerbefore_actionに設定されています。ここでは

は、私は、シリアライザを呼び出して、私のコントローラです。ここ

そして、私のシリアライザです:

class ProfileSerializer < ActiveModel::Serializer 
    attributes :couple 

    def couple 
    return nil if serialization_options[:couple_ser].nil? 
    serialization_options[:couple_ser] 
    end 
end 

事は、私は私のコントローラは、showメソッドを要求する変数@coupleを持っていることを完全に確信しているということです。しかし、常にそのnullをスローします。

私は、レール上の比較的新しいルビーです。だから、誰かが私を助けることができますか?

私は議論すべきコードの本質的な部分だけを掲載しました。

乾杯

答えて

0

あなたはAMSのv0.10を使用している場合は、代わりにあなたのシリアライザの「serialization_options」の「@instance_options」を使用する必要があります。

+0

あなたのお返事ありがとうございます。 私たちはAMS v0.9を使用していますが、引数を渡すこのオプションは推奨されていません。 すぐにv0.10にアップグレードし、アップグレード後に一部のAMS実装が壊れているため、まだ動作していないかどうかを確認します。 しかしすぐにアップグレードしてこの質問を更新します。 – adrianorob

0

v0.9

あなたはこれを試しましたか?

ProfileSerializer 
    .new(@profile, {root: false, scope: current_relationship}) 
    .as_json({couple_ser: @couple, partners_ser: @partners}) 
関連する問題