2014-09-01 5 views
0

내 모델이처럼 생각 : 그래서 여기에 같은 방법으로 모든 통화 백업 후에 호출되는 Rails에서 다른 사용자 정의 콜백을 수행 한 후 동일한 인스턴스 메소드를 트리거하는 쉬운 방법이 있습니까?

class SampleProject < ActiveRecord::Base 

    #consider all these callbacks to be custom defined ones 
    #I'm using default callbacks just to explain my problem 

    after_save :simple_testing 
    after_update :simple_testing 
    before_save :simple_testing 
    before_create :simple_testing 
    after_commit :simple_testing 

    def simple_testing 
     #my custom code 
    end 

end 

. 그래서이 콜백들이 모두 simple_testing 메소드를 호출해야한다는 것을 정의하는 간단한 방법이 있습니까?

+0

SampleProject 레코드를 생성 할 때'simple_testing'이 세 번 호출 될 것입니다. –

+0

그런 것은 아닙니다. 사실 simple_testing은 기본 콜백 메서드가 아닌 내 사용자 지정 콜백 메서드에서 호출됩니다. 나는 여기 예제 코드가 불합리한 것에 대해 내가 작성한 것을 안다. 그러나 이는 단지 아이디어를 제공하기위한 것이다. @MaxWilliams 시간과 대답에 감사드립니다. –

+0

당신을 진심으로 환영합니다. 일반적으로 나는 실제 코드를 사용하는 것이 가장 좋습니다. "예제"코드로 "번역"하면 혼란을 야기 할 수 있습니다. –

답변

1

왜 이렇게하고 싶지는 모르겠지만 클래스 정의에서 Ruby 코드를 사용할 수 있습니다.

callbacks = [:after_save, :after_update, :before_save, :before_create, after_commit] 
callbacks.each do |callback| 
    self.send(callback, :simple_testing) 
end 

저는 이것을 시도하지 않았지만 생각합니다.