2010-12-09 83 views
0

这里是New Rails程序员。这可能是一个非常简单的解决方案,但我无法弄清楚。这是一笔交易:可以说我在单个页面上有很多帖子。每篇文章都有一个内容字段,其中一些内容字段包含内容中的#hash标签。使用Ruby on Rails进行Hashtag筛选

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

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

所有的建议,非常感谢。

回答

0

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

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分钟内可以回答的问题,你可能会得到更多的反馈和帮助。

祝你好运!

+0

感谢您的帮助!我知道这个难题还有更多的部分,但这正是我想要开始的。 – aguynamedloren 2010-12-09 03:47:42