2010-12-09 69 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