2011-04-21 6 views
0

레일 우드 애플리케이션에 태그 올림 시스템을 구현하려고합니다 (사용자가 자유형 텍스트 박스에 태그를 입력하는 경우). 이 작업을 수행 할 수있는 보석이 있다는 것을 알고 있지만 학습 경험을 위해 직접 구현하려고했습니다. 나는 그것이 작동하도록 만들었지 만, 나는 Rails 초보자이기 때문에 나는 그것을 "올바른 길"로하지 않을 것이라고 염려한다.레일에 태그 시스템 구현하기

def Post 
    attr_accessor :tag_names 

    has_and_belongs_to_many :tags 

    after_save :update_tags 

    private 
    def update_tags 
     tags.clear 

     if tag_names.to_s == '' 
     return 
     end 

     tag_names.split(/,/).each do |tag_name| 
     tag_name.strip! 
     tag = Tag.find_or_create_by_name(tag_name) 

     if !tags.exists?(tag.id) 
      tags << tag 
     end 
     end 
    end 
end 

이 쉽게 내가 할 일은 내 게시물 개체에 "tag_names"속성을 설정하기 때문에 나를 게시물에 대한 태그를 설정할 수 있도록합니다 :

여기에 내 현재 구현입니다. 게시물 개체를 저장하면 after_save 이벤트가 발생하여 update_tags 함수가 실행되어 태그 생성 및 게시물 링크가 처리됩니다.

구현에 문제가 있습니까?

편집 : 어떤 보석도 권하지 마십시오. 위에서 언급했듯이, 나는 이미 그들에 대해 알고있다. 나는 그들을 사용하고 싶지 않다.

답변

0

acts_as_taggable이 동일한 것을 어떻게 달성하는지보십시오. 구현 아이디어를 빌릴 수 있습니다.

+1

. Rails newb를 따르는 것이 가장 쉬운 코드는 아닙니다. 현재 구현에 대해 나에게 줄 수있는 직접적인 조언이 있습니까? –

0

저는 실제로 처음부터 하나 만들려하고 있습니다. 나는 그들이 필드에 대한 StackOverflow에있는 것처럼 자동 완성이 필요하다고 생각한다. 나는 Railscast를 여기에서 따라 갔다, http://railscasts.com/episodes/167-more-on-virtual-attributes. 당신이 그것을 알아 냈다면, 나는 또한 도움을 주셔서 감사 할 것입니다.