Итак, я работаю над проектом, в котором используется гем act_as_taggable_on_steroids. Я установил его как драгоценный камень, и он прекрасно работает и все. Вот где я сталкиваюсь с проблемами - я хочу сгенерировать список из 25 лучших используемых тегов и количество раз, которое они использовались во всех тегируемых элементах.
Ну, как это происходит, acts_as_taggable_on_steroids, создает таблицу под названием "taggings", которая содержит эту информацию. Когда я запускаю следующую команду 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
.....
Итак, я хочу создать представление для перечисления этой информации, и она не сотрудничает. У меня нет связанной модели для таблицы «тегов», если она есть, и я думаю, что это может быть связано с тем, что я установил activ_as_taggable_on_steroids как драгоценный камень, а не как плагин?
Например, я пытался сделать это в своем приложении:
@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 :: Taggings"
============================
В качестве дополнительного вопроса, я полагаю, я мог бы создать свою собственную модель и контроллер "Taggings", что имело бы смысл. Однако, если я сделаю это, столкнусь ли я с чем-либо в самоцвете act_as_taggable_on_steroids? Если нет, то я думаю, что в любом случае это может быть простой / лучший способ сделать это!