Я хочу отображать список с тегами и количество элементов (в моем примере «Задачи») для каждого тега.Rails: find_by_sql и виртуальный столбец
Для этого я создал следующий метод в моей модели Tag:
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
Метод возвращает правильные имена тегов, но по какой-то причине taskcounts не в результате. Результат выглядит
[#<Tag name: "hello">, #<Tag name: "world">]
Поскольку этот подход не похоже на работу, я задаюсь вопросом, что Rails-способ выполнить такую задачу. Благодаря!
Отличный вопрос! Я знаю, что это старый пост, но он спас меня в большом проекте, над которым я работаю ... так, спасибо! – dennismonsewicz