0

私の理解では、あなたがこのようにレンダリング使用しているときにのみ、AMSを呼び出すことができるということです。ORDER_BY Railsのシリアライザ変換

render json: foos, each_serializer: FoosSerializer

しかし、私はシリアル化されたリソースからの結果で何かをしたい場合はどのようなそれがシリアル化された後?それは可能ですか?私の問題は私のシリアライザは、リソースの属性のいずれかを変換するために、リソース上でメソッドを呼び出すと、私は、フロントエンドに渡す前に、その属性で注文する必要があるということです。

私は下記行うと:

ActiveModel::SerializableResource.new(
    foos, 
    each_serializer: FoosSerializer 
).to_json 

を私はJSONを取り戻すが、私は戻って私が上order_byを呼び出すことができます何かにそれを変換することができますか?

EDIT:

私はこれがあります。

JSON.parse(ActiveModel::SerializableResource.new(
     foos, 
     each_serializer: FoosSerializer 
    ).to_json).sort {|x,y| x[:name] <=> y[:name]} 

をしかし、これは、私はまだ病棟後に解析された結果で何かをする必要があるとして、間の順序を呼び出すためにto_jsonparseを呼び出すために愚かなようです。

+0

fooが集まりますか? – AnkitG

+0

は@AnkitGはい、それは – stackjlei

答えて

1

どのコントローラでFooSortSerializer

class FooSortSerializer < ActiveModel::Serializer 

    def attributes(_options = {}, _reload = false) 
    object.collect do |foo_instance| 
     FooSerializer.new(foo_instance).attributes 
    end.sort {|x,y| x[:name] <=> y[:name] 
    end 
end 

などの別のトランス・シリアライザを作成する方法について

render json: foos, serializer: FooSortSerializer 
+0

申し訳ありませんが、私はあなたの以前の質問を読み違えコレクションだ、fooがコレクションではありません。それは私が名前など、ソートする属性を持つリソースです。私はそれが最初にシリアライズされます私の問題 – stackjlei

+0

あなたがお互い – stackjlei

+0

に関しては、リソースとリソース内ではなくによって種類を提供してきた答えを参照してください更新後にソートしたいので、name属性は、シリアライザによって変換され、すべてのリソースとthn出力を並べ替えます。私はあなたが私の答えでやっている並べ替えを追加しました。私は問題がI'mgが配列戻っettingということだと思う ' – stackjlei

関連する問題