2010-03-11 2 views
2

나는 태그 시스템이있는 사이트를 가지고 있지만 사용자가 자신이 선택한 다른 태그 집합을 구독 할 수있게하여 새로운 제출이 이루어질 때 사용자가 구독하는 것과 일치하는 태그가있어 알림을받습니다. 예를 들어 사용자가 의 빨간색, 월페이퍼에만 관심이 있고 그 중 은 큰으로 간주된다고 가정 해 보겠습니다. 그들은 세 개의 태그를 세트에 추가하고,이 태그를 포함하는 배경 화면이 추가되면 사용자가 알림을받습니다. 그들은 모든 태그 집합을 가지고 이것을 할 수 있어야합니다. 그것은 까다로운 문제처럼 보입니다. 나는 간단한 해결책을 찾지 못합니다. 아무도 이것이 이미 보석에서 어딘가에 해결 되었다면 아는가, 아니면 그것을 효율적으로 수행하는 방법에 대한 아이디어가 있습니까?Ruby on Rails : 다양한 태그 집합에 대한 알림 시스템

를 찾고에 대한

덕분에 당신은 taggable 또한 사용자 모델을 만들 수 있습니다

답변

4

:

# User model 
acts_as_taggable 

을 그리고 자신의 사용자 개체에 사용자가 선택한 태그를 추가하면 알림을하고자하는 모델에서 다음 @user.tag ['wallpapers', 'red', 'large'] 그리고 추가 :

after_create :send_notifications 

def send_notifications 
    @users = User.find_tagged_with :all => self.tag_names 
    @users.each do |u| 
    something_that_will_send_notification_to_user u 
    end 
end 
+0

이것은 좋은 시작이지만 사용자가 여러 개의 태그 모음을 가지고 있다면 어떻게 될까요? 예를 들어, 그들은 한 세트의 모니터와 사진, 자연, 다른 세트처럼 큰 빨강, 바탕 화면을 가질 수 있습니다. 이것이 가능할 수 있습니까? – jklina

+0

태그 집합을 추가하려면'acts_as_taggable'과'belongs_to : user'를 추가 할 수있는 다른 모델 인'UserTagSet'을 추가해야합니다. 그런 다음 사용자에서'acts_as_taggable'을 제거하고'has_many : user_tag_sets'를 추가하십시오. 그런 다음 단일 사용자에게 많은 태그 세트를 추가 할 수 있으며'UserTagSet.find_tagged_with : all => self.tag_names'를 수행 할 수 있습니다. 이것에서 당신은주의해야하는 사용자를 얻을 수 있습니다. 실마리를 제공합니까, 아니면 예제 코드를 추가해야합니까? – klew