使用ActiveModel Serializer生成嵌套响应时的最佳实践

时间:2016-03-15 14:10:26

标签: ruby-on-rails ruby ruby-on-rails-3 active-model-serializers

这是生成具有嵌套键的响应的唯一方法吗?

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 个答案:

答案 0 :(得分:1)

这是documentation中指出的正确方法。

如果已经定义了序列化程序,则无需为delivery_product_configurations指定序列化程序。你可以这样重构:

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

has_many :delivery_product_configurations
...