0

まず、これはRails 4.2のactive_model_serializersバージョン0.10.2です。シリアライザがJSON API仕様を発行しないのはなぜですか?

さまざまなシナリオで2つのシリアライザを持つArticleモデルがありますが、このテストでは、異なるクラス名のArticleSerializerとArticleSimpleSerializerを除いて全く同じです。 ArticleSimpleSerializerでJSON APIをコントローラ外でJSONを発行する方法を理解できません。

ここに、グローバルシリアライザ設定のイニシャライザがあります。

ActiveModelSerializers.config.adapter = :json_api 
ActiveModelSerializers.config.jsonapi_resource_type = :singular 
ActiveModelSerializers.config.key_transform = :unaltered 

何作品: データ、型を持つこれらの両方の出力JSON APIの形式を、ルートキー属性:

はコントローラでのレンダリング。一つ目は、自動的に検出し、デフォルトの検索でコントローラの外側をレンダリングArticleSerializer

render status: :ok, json: @article 
render status: :ok, json: @article, serializer: ArticleSimpleSerializer 

を使用しています: これはArticleSerializerを見つけるだろうし、出力データ、タイプ、およびルートキー属性を持つことになります。

機能しない何
ActiveModelSerializers::SerializableResource.new(article).to_json 

:ArticleSimpleSerializerとコントローラの外にレンダリング

: これはデータ、タイプ、またはルートキー属性が含まれていませます。 JSONは、基本的に属性キーの下で私が期待するものになります。

ArticleSimpleSerializer.new(article).to_json 

ArticleSimpleSerializerをコントローラ外でemil JSON APIフォーマットにするにはどうすればよいですか?

答えて

0

SerializableResourceで(他のオプションの中でも)使用するシリアライザを指定できます。

これは私が望むものを私に与えます。

ActiveModelSerializers::SerializableResource.new(article, serializer: ArticleSimpleSerializer).as_json 
関連する問題