@object.as_json
as_json имеет очень гибкий способ конфигурировать сложный объект в соответствии с модельными отношениями
ПРИМЕР
Модельная кампания принадлежит магазину и имеет один список
У списка моделей есть много list_tasks, и у каждого из list_tasks есть много комментариев
Мы можем получить один JSON, который легко объединяет все эти данные.
@campaign.as_json(
{
except: [:created_at, :updated_at],
include: {
shop: {
except: [:created_at, :updated_at, :customer_id],
include: {customer: {except: [:created_at, :updated_at]}}},
list: {
except: [:created_at, :updated_at, :observation_id],
include: {
list_tasks: {
except: [:created_at, :updated_at],
include: {comments: {except: [:created_at, :updated_at]}}
}
}
},
},
methods: :tags
})
Методы уведомления :: теги могут помочь вам прикрепить любой дополнительный объект, который не имеет отношения с другими. Вам просто нужно определить метод с тегами имен в модельной кампании . Этот метод должен возвращать все, что вам нужно (например, Tags.all)
Официальная документация для as_json