我想顯示一個帶有標籤的列表以及每個標籤的元素數量(在我的示例中爲「任務」)。Rails:find_by_sql和虛擬列
爲此,我創建了我的標籤模型下面的方法:
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 2013-03-13 19:53:25