Реализация твиттер-подобных хэштегов на рельсах
Я хочу реализовать твиттер-подобный хэштег в своем приложении.
Скажем, у меня есть пользовательский ввод в текстовую область "Я прихожу в #london из #paris", тогда я хочу создать облако тегов хэштегов.
Я собираюсь использовать act-as-taggable-on. Поэтому я нахожу все свои хэштеги из текста в бэкэнд, а затем сохраняю его в поле тега.
У кого-нибудь есть опыт в этом, который они хотели бы поделиться? Спасибо.
Ответы
Ответ 1
Да, ActsAsTaggableOn должно быть в порядке. Как сказал @etang, это тяжелый камень, но он выполняет свою работу. Если вы ищете простой способ извлечь теги из текста, вы можете посмотреть https://github.com/twitter/twitter-text-rb. Он имеет несколько хороших регулярных выражений, которые могут сэкономить вам некоторое время.
Twitter::Extractor.extract_hashtags("my #favorite #site is http://foo.com/home#boo")
Это вернет "любимый" и "сайт", но не "boo" (как и ожидалось).
Ответ 2
Для поздних...
Я написал простую жемчужину именно для этого:
https://github.com/ralovely/simple_hashtag
Дайте отзыв или внесите свой вклад, если вам это нравится.
Ответ 3
ActsAsTaggableOn
должен работать нормально, если вы не слишком беспокоитесь о масштабировании. Он отслеживает ваши фактические теги ActsAsTaggableOn::Tag
и отслеживает отношение "многие ко многим" к вашим сообщениям с помощью ActsAsTaggableOn::Tagging
. Он также использует полиморфную ассоциацию в ActsAsTaggableOn::Tagging
, поэтому вы можете пометить ее в разных пространствах имен.