Чем больше я пытаюсь заставить гем действовать-как-тегировать-на работать, тем больше я думаю, что это принципиально разные типы проблем.Именно из-за псевдонимов.Драгоценный камень считает каждый тег своей особой снежинкой, что затрудняет создание синонимов.В некоторых случаях этого недостаточно, если вы хотите, чтобы у тега было описание, вам необходимо отредактировать данные миграции (что не сложно).
Вот что яучитывая реализацию, , учитывая трудности, которые я имел при реализации через гем .Предположим, вы хотите создать систему тегов для технологий.
Рассмотрим следующий псевдо-код, я еще не тестировал его.
rails g model Tech usage_count::integer description:text icon_url:string
и т. Д. Запустите миграцию.Обратите внимание на
Теперь в контроллере вам нужно будет увеличивать use_count каждый раз, когда что-то происходит, пользователь отправляет новый вопрос с тегом данного текста.
rails g model Name::Tech belongs_to:Tech name:string
Name::Tech model
belongs_to :tech
end
Тогда вы можете искать что-то вроде:
search = Name::Tech.where("name LIKE :prefix", prefix: "word_start%")
.joins(:tech)
.order(usage_count: desc)
.limit(5)
Это отправная точка.Он принципиально отличается от гема, так как каждый тег - это просто отдельная строка, но он ссылается на более богатую таблицу данных в конце.Я поработаю над внедрением и вернусь, чтобы обновить с более лучшим решением.