Этот вопрос относится к AMS 0.8
У меня две модели:
class Subject < ActiveRecord::Base
has_many :user_combinations
has_ancestry
end
class UserCombination < ActiveRecord::Base
belongs_to :stage
belongs_to :subject
belongs_to :user
end
И два сериализатора:
class UserCombinationSerializer < ActiveModel::Serializer
attributes :id
belongs_to :stage
belongs_to :subject
end
class SubjectSerializer < ActiveModel::Serializer
attributes :id, :name, :description, :subjects
def include_subjects?
object.is_root?
end
def subjects
object.subtree
end
end
Когда a UserCombination
сериализуется, я хочу встроить все поддерево объектов.
Когда я пытаюсь использовать эту настройку, я получаю эту ошибку:
undefined method `belongs_to' for UserCombinationSerializer:Class
Я попытался изменить UserCombinationSerializer
на это:
class UserCombinationSerializer < ActiveModel::Serializer
attributes :id, :subject, :stage
end
В этом случае я не получаю ошибок, но subject
сериализуется неправильно, не используя SubjectSerializer
.
Мои вопросы:
- Должен ли я использовать отношение belongs_to в сериализаторе?
- Если нет - как я могу получить желаемое поведение - встраивание дерева объектов с помощью SubjectSerializer?