1

這是生成具有嵌套密鑰的響應的唯一方法嗎?使用ActiveModel Serializer生成嵌套響應的最佳實踐

module Api 
    module V20150315 
    class ProductConfigurationSerializer < ActiveModel::Serializer 
     cached 
     delegate :cache_key, to: :object 

     embed :ids, include: true 

     attributes :id, :short_code, :rank 

     has_many :delivery_product_configurations, 
     serializer: Api::V20150315::DeliveryProductConfigurationSerializer 

    end 
    end 
end 

has_many是一個串行器,它本身調用另一個串行器。這是正確的最佳方式嗎?

是否有其他方法可以做到這一點?這是最有語義的方式嗎?

-Jeff

回答

1

這是因爲在documentation指示的正確途徑。

如果已經定義了序列化程序,則不需要爲delivery_product_configurations指定序列化程序。你可以這樣重構:

... 
attributes :id, :short_code, :rank 

has_many :delivery_product_configurations 
...