2013-02-08 6 views
-1

이렇게 코딩하면 구문 오류가 발생합니다.
어떻게 수정할 수 있습니까?before_save를 올바르게 사용하려면 어떻게해야합니까?

before_save :handle_invitation_code, if: :just_confirmed 

def just_confirmed? 
    confirmed_at_changed? && confirmed_at_was.nil? 
end 

def handle_invitation_code 
    ... 
end 
+1

무엇이 오류 메시지입니까? –

+2

왜 당신은 오류가 있다고 우리에게 말하고 그 오류가 무엇인지 알려주지 않으십니까? 우린 초능력이 아니야. – meagar

+0

당신은'before_save : handle_invitation_code, if : 'self.just_confirmed?''를 시도 했습니까? (yes yes, if 문을 문자열로 사용하고, 현재 Rails 3.2.11의 production에서'before_save : set_name, if : 'self .name.nil? '') – MrYoshiji

답변

2

어때요?

before_save :handle_invitation_code 

def just_confirmed? 
    confirmed_at_changed? && confirmed_at_was.nil? 
end 

def handle_invitation_code 
    if self.just_confirmed? 
    ... 
    end 
end 

아니면 before_save에 PROC로 just_confirmed?의 코드를 통과해야합니다.

+0

여전히 정의되지 않은 메서드가 있습니다. before_save 'for UsersController : 클래스 없음 메서드 오류 – Foo

+1

before_save는'ActiveRecord' 콜백입니다 .. 컨트롤러는'ActionCo ntroller'에 콜백이 없습니다. 나는 before_filter가 필요할 것이라고 생각한다. –

+0

감사합니다. 사용자가 Devise와 이메일로 확인한 후에 만이 방법을 실행하고 싶습니다. – Foo

관련 문제