@object.as_json
as_json tiene una forma muy flexible de configurar objetos complejos de acuerdo con las relaciones del modelo
EJEMPLO
La campaña modelo pertenece a la tienda y tiene una lista
La lista de modelos tiene muchas list_tasks y cada una de list_tasks tiene muchos comentarios
Podemos obtener un json que combina todos esos datos fácilmente.
@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
})
Métodos de aviso : las etiquetas pueden ayudarlo a adjuntar cualquier objeto adicional que no tenga relaciones con otros. Solo necesita definir un método con etiquetas de nombre en la campaña modelo . Este método debería devolver lo que necesite (por ejemplo, Tags.all)
Documentación oficial de as_json