2014-07-09 2 views
3

필자는 필자의 레일 프로젝트에서 merit gem을 사용하고 있으며, merit observer는 전혀 작동하지 않습니다. 명성 변경 I는 사용자의 라이프 시점을 업데이트하고 때 나는 내 응용 프로그램/관찰자/폴더레일 Ruby merit gem observer가 작동하지 않습니다.

#reputation_change_observer.rb 
class ReputationChangeObserver 
observe :user 
def update(changed_data) 
    description = changed_data[:description] 

    # If user is your meritable model, you can query for it doing: 
    user = User.where(sash_id: changed_data[:sash_id]).first 

    user.update_life_time_point 
    user.give_badges 

    # When did it happened: 
    datetime = changed_data[:granted_at] 
    end 
end 

에 reputation_change_observer.rb있다. 사용자 지점이 특정 지점에 도달하면 배지를 제공합니다. 그러나이 두 기능은 작동하지 않습니다. 누구든지 어떤 생각을 가지고 있습니까? 문제는 무엇인가? 설정에서

class ReputationObserver < ActiveRecord::Observer 

    def after_update(reputation) 
    # use reputation.previous_changes to get the last changes in reputation object and accordingly write your logic 
    end 

end 

응용 프로그램/관찰자/reputation_observer.rb에서

+0

(reputation_observer 활성화)? https://github.com/tute/merit#getting-notifications의 지침을 따르셨습니까? 아주 최근에 나는 당신이 그것을 쉽게 업그레이드 할 수 있다면, 2.1.2와 관련된 버그 수정 릴리즈를했습니다. – TuteC

답변

1

/application.rb은 사용하는 장점 어떤 버전의

config.active_record.observers = :reputation_observer 
+0

사실이 줄을 application.rb에 추가하는 것을 잊어 버렸습니다. 나는 그것을 추가했다. 그 후 나는 NameError를 얻었습니다. '초기화되지 않은 상수 ReputationChangeObserver (NameError)' observe : user를 관찰자에게 추가하여 수정했습니다. 그러나 장점 기능은 전혀 작동하지 않습니다. – Abhi

+0

ActiveRecord :: Observer와 관련된 위의 코드를 추가했지만 merit gem을 사용하고 있습니다. 이 경우 config.add_observer 'ReputationChangeObserver'# config/initializers/merit.rb에 추가해야합니다. – Allerin

+0

이미 추가되었습니다. – Abhi

관련 문제