在Rails上实现类似Twitter的标签功能

18
我希望在我的应用程序中实现类似Twitter的标签功能。例如,我有一个用户在文本区域中输入了"I'm coming to #london from #paris",然后我想要构建标签云来显示这些标签。
我考虑使用acts-as-taggable-on库。因此,我可以从后端获取输入文本中的所有标签,然后保存到标签字段中。
是否有任何经验可以分享?谢谢。

你有一个特定的问题在困扰吗? - carols10cents
这个问题并不太清晰。您在这个实现的哪一部分遇到了困难? - Tim Post
这很有趣。我对实现此目的的各种方法很好奇 - 到目前为止,似乎 acts-as-taggable-on 是唯一被推荐的方式。另外,有没有办法让这些标签像 Facebook 上的提及一样呢?在 Facebook 的帖子中,我可以说“幸好 Danny 和我去了 X 地方”,而用户姓名 Danny 就会被突出显示并链接... - dmonopoly
3个回答

12

是的,ActsAsTaggableOn 应该没问题。正如 @etang 提到的,它是一个大型的 gem,但可以完成任务。如果你正在寻找一种从文本中提取标签的简单方法,你可以看看 https://github.com/twitter/twitter-text-rb。它有一些漂亮的正则表达式,可能会节省您一些时间。

Twitter::Extractor.extract_hashtags("my #favorite #site is http://foo.com/home#boo")
那将返回“favorite”和“site”,但不会返回“boo”(这是预期中的行为)。

3
对于其他人查看此内容,URL 已移至 https://github.com/twitter/twitter-text-rb。 - Dom
已经再次移动到 https://github.com/twitter/twitter-text,并且 Ruby 部分在此处:https://github.com/twitter/twitter-text/tree/master/rb。 - littleforest

3

1
如果您不太担心扩展性,那么ActsAsTaggableOn应该可以正常工作。它通过ActsAsTaggableOn::Tag跟踪您的实际标签,并通过ActsAsTaggableOn::Tagging跟踪与您的帖子之间的多对多关系。它还在ActsAsTaggableOn::Tagging中使用多态关联,因此您可以在不同的命名空间中进行标记。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接