Ruby on rails 使用Ruby on Rails进行标签过滤

Ruby on rails 使用Ruby on Rails进行标签过滤,ruby-on-rails,ajax,information-retrieval,Ruby On Rails,Ajax,Information Retrieval,这里是新的Rails程序员。可能有一个非常简单的解决方案,但我就是想不出来。交易是这样的:假设我在一个页面上有很多帖子。每个帖子都有一个内容字段,其中一些内容字段在内容中包含#hashtag 我想开发一种算法,扫描每一篇文章的内容(比如说,每2秒),并显示每个标签的列表。我认为AJAX将是必要的,因为帖子的特点是AJAX编辑到位。因此,如果一篇文章被更改并创建了一个新的hashtag,hashtag列表应该自动更新以反映这一点。此外,hashtag列表上的每个hashtag都应该是可点击的,发送

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

我想开发一种算法,扫描每一篇文章的内容(比如说,每2秒),并显示每个标签的列表。我认为AJAX将是必要的,因为帖子的特点是AJAX编辑到位。因此,如果一篇文章被更改并创建了一个新的hashtag,hashtag列表应该自动更新以反映这一点。此外,hashtag列表上的每个hashtag都应该是可点击的,发送一个搜索查询,然后显示包含所选hashtag的帖子

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


非常感谢您的所有建议。

就我个人而言,我将使用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
class Post
这里有两个名称相同的方法,但是在类(
Post.hashtags
)上调用一个方法来获取所有帖子中的所有hashtags,在单个实例(
Post.hashtags
)上调用第二个方法来仅获取该帖子中的hashtags

还有其他几块拼图——控制器代码、视图和javascript。这个问题对于志愿者网站来说是一个很高的要求。你要求为你做几件不同的事情

我的建议是,按照我所描述的那样开始构建,并在过程中遇到问题时寻求帮助。我们非常乐意提供帮助,但您要求的是一个完整的javascript驱动的MVC堆栈。试着把你的问题限制在5-10分钟内就能回答的范围内,你很可能会得到更多的反馈和帮助


祝你好运

谢谢你的帮助!我知道还有更多的拼图,但这正是我开始寻找的。