Подтвердить что ты не робот

Реализация твиттер-подобных хэштегов на рельсах

Я хочу реализовать твиттер-подобный хэштег в своем приложении.

Скажем, у меня есть пользовательский ввод в текстовую область "Я прихожу в #london из #paris", тогда я хочу создать облако тегов хэштегов.

Я собираюсь использовать act-as-taggable-on. Поэтому я нахожу все свои хэштеги из текста в бэкэнд, а затем сохраняю его в поле тега.

У кого-нибудь есть опыт в этом, который они хотели бы поделиться? Спасибо.

4b9b3361

Ответ 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, поэтому вы можете пометить ее в разных пространствах имен.