2013-03-01 1 views
2

필자가 필요한 것보다 더 많은 쿼리를 실행하지 않도록 테스트를 작성하려고합니다. ActiveRecord 테스트 케이스를 발견하고 그것을 상속하려고했습니다. 이 테스트 케이스에는 assert_queries (num)와 같은 유용한 메소드가있다. 문제 - 3.2.12에서 작동하지 않는 것으로 보이며 더 이상 사용되지 않습니다.레일 쿼리 수 테스트

쿼리 로그에 액세스 할 수 있습니까? 일부 쿼리 로깅 객체를 검사하기 위해 테스트 케이스 중 하나를 실행하려고합니다. 주사위가 없다.

이 줄을 조금 따라 가면 모델 외부에 콜백을 등록 할 수있는 기능이 있습니까? 예를 들어 모든 객체 저장 방법을 청취하는 블록을 등록하려고합니다.

답변

2

"모델 외부에 콜백을 등록 할 수있는 기능이 있습니까?"

ActiveRecord :: Observer는 사용자가 원하는대로 정확하게 수행해야합니다. 더 많은 예제 및 고급 사용에 대한

class CommentObserver < ActiveRecord::Observer 
    def after_save(comment) 
    Notifications.comment("[email protected]", "New comment was posted", comment).deliver 
    end 
end 

http://api.rubyonrails.org/classes/ActiveRecord/Observer.html

참조 :이 코드는 주석 모델을 '관찰'