Как получить вложенные атрибуты с помощью active_model_serializers - PullRequest
0 голосов
/ 26 июня 2018

Я использую active_model_serializers gem, и мне нужно получить вложенные атрибуты Сервис модель

class Category < ActiveRecord::Base
  has_many :subcategories
end

class Subcategory < ActiveRecord::Base
  has_many :services
end

class Service < ActiveRecord::Base
  belongs_to :subcategory
end

Сериализаторы:

class CategorySerializer < ActiveModel::Serializer
  attributes :id, :title

  has_many   :subcategories,      serializer: SubcategorySerializer
end

class SubcategorySerializer < ActiveModel::Serializer
  attributes :id, :title

  has_many   :services,      serializer: SubcategorySerializer
end

class ServiceSerializer < ActiveModel::Serializer
  attributes :id, :title
end

Контроллер категории:

class CategoriesController < BaseController
  def index
    categories = Category.all

    render json: categories, each_serializer: CategorySerializer
  end
end

Сериализаторы категорий не возвращают вложенные атрибуты модели Сервис .

{
        "id": 1,
        "title": "Category 1",
        "subcategories": [
            {
                "id": 1,
                "title": "Sub category 1"
            },
            {
                "id": 2,
                "title": "Sub category 2"
            }
    ]
  }

Мне нужно получить результат json с моделью вложенного Сервиса вподкатегория I, использующая active_model_serializers (~> 0.10.2) Как это сделать?

1 Ответ

0 голосов
/ 26 июня 2018

В config/initializers/active_model_serializer.rb добавление файла ActiveModel::Serializer.config.default_includes = '**'

...