2012-09-13 7 views
0

스펙이나 레일 콘솔 하나에서 클래스, after_create 메소드를 호출하는 방법 :나는 <pre><code>class Item < ActiveRecord::Base after_create TellMe end class TellMe def self.after_create(model) end </code></pre> <p></p> 다음 한이 유사한 무언가 할 수 있도록하고 싶습니다

i=Item.new :name => 'my test name' 
i.send(:TellMe.after_create) 

유사한 공개 방법을 어떻게 부르겠습니까? 내가

i.instance_eval 'TellMe.after_create(self)' 

을 할 수있는 것처럼 보이지만 항목을 만들고,이 경우,

+1

? 실제 코드로 컨텍스트에 넣을 수 있습니까? –

+0

'after_create : tell_me'을 가지고 있다면 위의 내용은 실제 호출에 매우 가깝습니다. 여러분은'Item.send (: tell_me)'을 가질 수 있고 다양한 문맥에서 사용할 수 있습니다. 비슷한 방식으로이 함수에 액세스하고 싶습니다. 멍청한 질문을 던지십시오. – timpone

답변

1

콜백을 트리거 할 수있는 유일한 방법은 자격 이벤트를하는 것입니다 조금 추한 (사이에 다른 일을) 느낀다. 당신이 원하는, 당신은 단지 콜백이 어떻게 할 것인지 정확히 할 것입니다 다른 방법을 만들 수 있습니다 당신이처럼 액세스 할 수있을 것입니다에 대한 해결 방법으로

정상

Class Item < ActiveRecord::Base 

    def tellme(params) 
    TellMe.function(params) 
    end 

end 
정확히 당신이 뭘 하려는지
+0

콜백이 실제로 여기에있는 것입니다. 현재 모델의 컨텍스트로 호출하려고합니다. 그것은 보내는 것이 무엇인지에 대한 제 인상입니다. 내가 놓친 게 있니? – timpone

+0

원하는 매개 변수를 함수에 전달하기 만하면됩니다. 클래스 함수 안에서'self'를 통해 해당 모델의 모든 데이터에 접근 할 수 있습니다. –

관련 문제