Отбивая мою голову против стены за эти 2 дня, чтобы выяснить, как отображать объект, у многих объектов есть много объектов в active_model_serializers. Вот мои сериализаторы:Объект имеет много объектов, имеющих много объектов в active_model_serializers
Раздел сериализатора:
class SectionSerializer < ActiveModel::Serializer
attributes :id, :title, :description
has_many :questions, foreign_key: 'section_id', class_name: 'Comment'
end
А ниже мой Комментарий сериализатору
class CommentSerializer < ActiveModel::Serializer
attributes :id, :body
belongs_to :section
has_many :replies, class_name: 'Comment', foreign_key: 'question_id'
belongs_to :question, class_name: 'Comment'
end
в основном я хочу достичь Раздела has_many вопросов и Вопрос ha s_many отвечает, но оба Вопрос и Ответить это та же модель, что это комментарий модель.
Вопрос заключается в том, как включить ответов, когда я извлекаю все разделы. На данный момент я получил этот JSON:
{
"id": 1,
"title": "section 1",
"description": "Lorem ipsum dolor sit amet",
"questions": [
{
"id": 1,
"body": "question 1"
}
]
}
Как мы можем видеть, что нет ответов на вопросы массива, и мне нужно, что JSON-то вроде этого от сериализатором.
{
"id": 1,
"title": "section 1",
"description": "Lorem ipsum dolor sit amet",
"questions": [
{
"id": 1,
"body": "question 1",
"replies" : [
{
"id": 2,
"body": "reply 1 for question 1"
},
{
"id": 3,
"body": "reply 2 for question 1"
}
]
}
]
}
Я очень ценю вашу помощь.
Спасибо!