0

首先,這是在Rails 4.2中的active_model_serializers版本0.10.2。序列化程序爲什麼不發出JSON API規範?

我有一個文章模型有兩個序列化程序用於不同的場景,但對於這個測試,除了不同的類名稱,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 
相關問題