2014-01-30 8 views

답변

2

실행 중단 횟수는 얼마나됩니까?

변수가 인스턴스 외부에서 설정되면 일부 방법으로 액세스됩니다. 이러한 목적으로 만 이러한 메서드를 덮어 쓸 수 있습니다.

# define 
class Foo 
    def bar 
    @bar ||= 'default' 
    end 

    def bar=(value) 
    @bar = value 
    end 
end 

# overwrite 
class Foo 
    def bar=(value) 
    super 
    abort("Message goes here") 
    end 
end 
+0

내 경우에는 값이 어디에서 변화하는지 알 수 없습니다. 즉, 나는 변화가 일어나는 코드의 정확한 기능/위치를 모른다. 그래서 디버거 (해당하는 경우)의 해당 기능을 사용하여 해당 값이 변경 될 때마다 디버거가 실행을 중단하고 해당 특정 코드를 찾을 수있게하려고합니다. –

+1

이것은 변경이 어디에서 호출되는지 찾는 전략을 나타냅니다. 인스턴스 내부에 있다면 변수에 대한 모든 액세스가 getter/setter 메소드를 통해 수행되는지 확인할 수 있습니다. 그것이 외부 호출에서 온 것이라면 비슷한 추론이 적용됩니다. 그러나 db 테이블의 대량 업데이트로 데이터가 변경되는 경우 모든 베팅은 해제됩니다. –