2013-01-14 2 views
0

내 FbPlace 클래스 (mongo 문서)의 개체가 업데이트 될 때 새 개체 생성을 시작하려고합니다. FbPlace는 콘솔 또는 레이크 작업의 스크립트를 통해서만 업데이트됩니다. 내탭 또는 로그 파일에서 내 fb_places에 대한 내 가입이 올바르게 트리거되는지 확인할 수 있습니까?ActiveSupport 알림 - 디버깅 할 콘솔 또는 로그에 인쇄 중입니까?

ActiveSupport::Notifications.subscribe("fb_places_updated.graph_engine") do |*args| 
    puts "WORKS" 
    Rails.logger.debug("+++ WORKS") 
    #Other irrelevant logic 
end 

나는 알림이 내가 FbPlace.update_attribute(name: "test_name") 뭔가를 할 때 트리거지고 있는지 확인하기 위해 putsRails.logger.debug를 추가했습니다,하지만 난 아직 콘솔 아무것도 인쇄 또는 내 로그 파일을 보지 못했다.

어떤 조언이 필요합니까?

답변

1

이벤트에 실제로 등록한 위치를 지정하지 않았습니다. 나는 이니셜 라이저에서 작업을 수행하고 레이크 작업이 환경을로드하므로 이미지를 잘 보여야합니다.

이벤트가 발생할 때 블록이 평가되는지 보려면 을 입력하고 그 내용을 볼 수있는 Pry을 사용할 수 있습니다. Gemfile에 넣은 다음 :

ActiveSupport::Notifications.subscribe("fb_places_updated.graph_engine") do |*args| 
    binding.pry 
end 

레이크 작업을 실행합니다. Pry 세션에서 끝나지 않으면 이벤트가 트리거되지 않았습니다. fb_places_updated.graph_engine 이벤트를 트리거해야하는 것이 확실하지 않습니다. 나는 알림을 귀찮게하지 않을 그런 경우

ActiveSupport::Notifications.instrument("fb_places_updated.graph_engine", some_data: 42) 

그냥 사용 : 다른 측면이있을 필요가있다 - 당신이 mongoid을 사용하고 내가 아는 그 어떤 측정 장치를 트리거하지 않습니다 받아 after_update callback 또는 observer입니다.