У меня есть модель Category
has_ancestry и активная модель сериализаторов
class Category < ActiveRecord::Base
attributes :id, :name, :order, :x, :y, :z
has_ancestry
end
В мой контроллер, я могу использовать следующее, чтобы получить целое дерево, как JSON
Category.first.subtree.arrange_serializable
Но это возвращает все DB такие атрибуты как created_at
или id
Я хотел использовать активный сериализатор модели для формирования моего вывода без потери древовидной структуры.
class CategorySerializer < ActiveModel::Serializer
# Children is the subtree provided by ancestry
attributes :name, :x, :children
end
Контроллер
class CategoryController < ActionController::Base
def index
category = Category.first
render :json => category
end
end
Код выше будет отображаться только первый уровень суб, но не дети детей. Любой помощь приветствуется
Это не работает. Он сериализует корневой элемент, а затем объединяет все подуровни в одном списке и выводит их, не обращая внимания на сериализатор – pabera
, пожалуйста, покажите, как вы используете этот код (возможно, у контроллера). –
Спасибо, я также нашел этот фрагмент в документах. Но как использовать этот сериализатор. Я попробовал, и это применит только к первому элементу, а не к нисходящим onces. – pabera