【问题标题】:Hashtag filtering with Ruby on Rails使用 Ruby on Rails 进行标签过滤
【发布时间】:2010-12-09 02:55:41
【问题描述】:

这里是新的 Rails 程序员。可能有一个非常简单的解决方案,但我就是想不通。这是交易:假设我在一个页面上有很多帖子。每个帖子都有一个内容字段,其中一些内容字段在内容中包含#hashtags。

我想开发一种算法来扫描每个帖子的内容(例如,每 2 秒)并显示每个主题标签的列表。我认为 AJAX 将是必要的,因为这些帖子具有 AJAX 就地编辑功能。因此,如果帖子发生更改并创建了新的主题标签,则应自动更新主题标签列表以反映这一点。此外,主题标签列表上的每个主题标签都应该是可点击的,发送搜索查询并依次显示包含所选主题标签的帖子。

这个最终结果类似于标签和标签云,但应该是动态的和集成的(而不是每个帖子都有一个标签字段)。我不想将任何标签作为数据库列附加到帖子中。我只想让应用程序扫描每篇文章的内容并显示一个可点击的标签列表。

非常感谢所有建议。

【问题讨论】:

    标签: ruby-on-rails ajax information-retrieval


    【解决方案1】:

    就我个人而言,我会使用 jQuery 来实现您需要的 AJAX 功能。 Javascript 将用于检查服务器是否有新的主题标签,实际的主题标签搜索将在服务器上完成。在你的 Post 模型中,你可以有这样的东西来做实际的搜索:

    class Post < ActiveRecord::Base
      # class methods
      class << self
        def hashtags
          tags = []
    
          # cycle through all posts that contain a hashtag, and add them to list
          Post.all(:conditions => 'body like "%#"').each do |post|
            tags += post.hashtags
          end
    
          # remove duplicates and sort alphabetically
          tags = tags.uniq.sort
        end
      end
    
      # instance methods
      def hashtags
        @hashtags ||= body.scan(/#\w+/)
      end
    end
    

    这里有两个同名方法,但是一个在类上调用 (Post.hashtags) 以获取所有帖子中的所有主题标签,第二个在单个实例上调用 (post.hashtags) 以获取只是该帖子中的主题标签。

    还有其他几个部分可以解决这个难题 - 您的控制器代码、您的视图和您的 javascript。这个问题对志愿者网站来说是一项艰巨的任务。您要求为您完成几件不同的事情。

    我的建议是按照我的描述开始构建它,并就在此过程中遇到的问题寻求帮助。我们非常乐意提供帮助,但您需要的是整个 javascript 驱动的 MVC 堆栈。尽量将您的问题限制在可以在 5-10 分钟内得到回答的范围内,这样您可能会得到更多的反馈和帮助。

    祝你好运!

    【讨论】:

    • 感谢您的帮助!我知道还有更多的拼图,但这正是我想要开始的。
    猜你喜欢
    • 2016-04-17
    • 2012-09-15
    • 1970-01-01
    • 2016-07-20
    • 2015-01-25
    • 2018-04-20
    • 1970-01-01
    • 2012-07-05
    • 2015-04-09
    相关资源
    最近更新 更多