因此,我正在開發一個使用acts_as_taggable_on_steroids gem的項目。我已經將它安裝爲一個寶石,它運行得非常好。這裏是我遇到問題的地方 - 我想要生成25個使用過的標籤的列表,以及它們在所有可標記項目中使用的次數。在我從寶石那裏獲得的模型上運行SQL
好吧,碰巧,acts_as_taggable_on_steroids創建了一個名爲「標記」的表格,其中包含此信息。當我運行對直接DB下面的SQL命令
SELECT tags.name as tag_name, COUNT(*) as num_uses
FROM taggings
JOIN tags ON tags.id = taggings.tag_id
GROUP BY tag_id
ORDER BY num_uses DESC, tags.name
LIMIT 25;
我得到下面的示例中的結果,符合市場預期,排序由最常用的降序排列,並按照字母順序再分分類:
====================================
tag_name | num_uses
====================================
gadgets 15
cars 12
programming 12
quirky 12
2009 7
.....
...etc., etc., up to 25 rows
.....
所以,我想建立一個視圖列出這個信息,而不是合作。我沒有「標記」表的關聯模型,假設有一個,我想這可能是因爲我將acts_as_taggable_on_steroids安裝爲gem而不是插件?
例如,我想在我的應用程序這樣做:
@top_taggings = Taggings.find_by_sql("SELECT tags.name as tag_name, COUNT(*) as num_uses " +
"FROM taggings " +
"JOIN tags ON tags.id = taggings.tag_id " +
"GROUP BY tag_id " +
"ORDER BY num_uses DESC, tags.name" +
"LIMIT 25")
...我得到一個 「未初始化的常量ListingsController ::引用的Tagging」 錯誤
======== ====================
作爲一個後續問題,我想我可以創建自己的「標籤」模型和控制器,這是有道理的。但是,如果我這樣做,我會與acts_as_taggable_on_steroids gem中的任何內容發生衝突嗎?如果沒有,我想這可能只是簡單/更好的方法來做到這一點!
哦,很好。我添加了空間,但不幸的是,我有相同的錯誤信息。 :(沒有症狀改變 – jefflunt 2010-02-23 20:19:32
除此之外 - 這是來自某人對RoR很少和非常老的經驗 - 錯誤信息似乎是將Taggings識別爲一個常量(可能會降低這一點,因爲沒有任何內容可用的命名空間稱爲Taggings)。您是否包含/ require/import /無論Ruby的術語是「Taggings」類? – 2010-02-23 20:41:11