2017-11-19 11 views
0

조건 before_save 콜백에 대한 메서드 호출을 부정하는 방법 나는이 콜백 있습니다레일 (5) 내 템플릿 모델에서

before_save :set_status, if: :is_template? 

    private 

    def is_template? 
    return self.template_type == 'template' 
    end 

가 어떻게 그것을 변경할 수 있도록 단지가 터 template_type가 아닙니다 '템플릿 '?

나는이 시도 :

1 before_save :set_status, if: !:is_template? 
2 before_save :set_status, if: !(:is_template?) 

을하지만 그들은 모두 원인 오류 '방법 before_save를 찾을 수 없습니다'.

before_save :set_status, if: Proc.new {|model| !model.is_template? } 

하지만 그 같은 간단한 경우에 과잉 보인다

this question를 읽을 데, 나는 또한이 시도.

이 작업을 수행하려면 실제로 다른 방법 :is_not_template?을 작성해야합니까?

+1

을 시도해보십시오'before_save : set_status,하지 않는 : : is_template') – DivXZero

+0

@DivXZero 그래서 명백한 당신이 그것을 볼 때. 나는 잊지 않고있다! 정말 고맙습니다! 답변으로 게시하고 나는 그것을 표시 할 것입니다. – rmcsharry

답변

1

before_save :set_status, unless: :is_template? 시도)