2010-12-09 5 views
0

새로운 레일즈 프로그래머가 있습니다. 아마 이것에 대한 아주 간단한 해결책이있을 수 있습니다. 그러나 나는 그것을 이해할 수 없습니다. 거래는 다음과 같습니다. 한 페이지에 여러 개의 게시물이 있다고 가정 해 보겠습니다. 각 게시물에는 콘텐츠 필드가 있으며 일부 콘텐츠 필드에는 콘텐츠 내에 #hash 태그가 포함되어 있습니다.Ruby on Rails를 이용한 해시 태그 필터링

각 게시물의 내용을 (예 : 매 2 초마다) 스캔하고 모든 해시 태그의 목록을 표시하는 알고리즘을 개발하고 싶습니다. 나는 AJAX가 필요할 것이라고 생각하고있다. 왜냐하면이 게시물에는 AJAX 편집 기능이 있기 때문이다. 따라서 게시물이 변경되고 새 해시 태그가 생성되면이를 반영하도록 해시 태그 목록이 자동으로 업데이트되어야합니다. 또한 해시 태그 목록의 각 해시 태그는 클릭 가능해야하며 검색어를 전송하고 선택한 해시 태그가 포함 된 게시물을 차례로 표시해야합니다.

이 최종 결과는 태그 지정 및 태그 클라우드와 유사하지만 동적이며 통합되어야합니다 (각 게시물에 태그 필드가있는 것과 반대). 게시물에 데이터베이스 열로 태그를 추가하고 싶지 않습니다. 응용 프로그램이 모든 단일 게시물의 내용을 스캔하고 클릭 가능한 해시 태그 목록을 표시하기 만하면됩니다.

모든 제안을 크게 환영합니다.

답변

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)에서 호출되어 해당 게시물에서 해시 태그 만 가져옵니다.

퍼즐에 몇 가지 다른 부분이 있습니다 - 컨트롤러 코드,보기 및 자바 스크립트. 이 질문은 자원 봉사 사이트에 대한 어려운 질문입니다. 당신은 몇 가지 다른 일들이 당신을 위해 할 것을 요구하고 있습니다.

제 조언은 제가 설명한대로 이것을 시작하고 길을 따라가는 데 어려움이있는 부분에 도움을 요청하는 것입니다. 우리는 기꺼이 도와 드리 겠지만 전체 자바 스크립트 기반 MVC 스택을 요구하고 있습니다. 질문을 5 ~ 10 분 내에 대답 할 수있는 것으로 제한하십시오. 많은 피드백과 도움을 얻을 수 있습니다.

행운을 빈다.

+0

도움을 주셔서 감사합니다. 퍼즐에 더 많은 조각이 있다는 것을 알았지 만 이것이 내가 시작하기 위해 찾고자했던 것입니다. – aguynamedloren

관련 문제