Quiero mostrar una lista con etiquetas más el número de elementos (en mi ejemplo "Tareas") para cada etiqueta.Rieles: find_by_sql y la columna virtual
Para ello creé el método siguiente en mi modelo de etiqueta:
def self.find_with_count
find_by_sql 'SELECT
Tag.name,
COUNT(Tag.name) AS taskcount
FROM
tags AS Tag
INNER JOIN tags_tasks tt ON tt.tag_id = Tag.id
INNER JOIN tasks t ON tt.task_id = t.id
WHERE
t.finished = 0
AND t.deleted = 0
GROUP BY
Tag.name
ORDER BY
Tag.name'
end
el método devuelve los nombres de las etiquetas correctas, pero por alguna razón los taskcounts no están en el resultado. El resultado se parece
[#<Tag name: "hello">, #<Tag name: "world">]
Como no parece funcionar este enfoque, me pregunto lo que el Rieles de ida es para llevar a cabo tal tarea. ¡Gracias!
Excelente pregunta! Sé que esta es una publicación anterior, pero me ahorró un gran proyecto en el que estoy trabajando ... ¡así que gracias! – dennismonsewicz