2011-09-24 4 views
0

내 모델에서는 before_save 메소드를 실행하도록 지정하고 일부 데이터에 대해 새 레코드를 확인합니다. 새로운 기록이 내가 원하는 것이 아니라면 어떻게 저장 될 수 있습니까?레코드를 레일에 저장하기 전에 레코드를 삭제합니다. 3

before_save :itemCheck 

    def itemCheck 
    if self.item_type_id == 1 
     if self.num > 6 
      self.destroy 
     end 
    end 
    end 

참고 : 여기에

내가 뭘하려고 (그리고 실패)하고있어 본질적으로 내 코드는 이것보다 더 복잡 - 단순한 예를 제작.

답변

4

before_save에서 false을 반환하면 기록이 저장되지 않습니다.

사이드 노트로 : 기능에 camelcase를 사용하지 말고 다음을 사용하십시오 : item_check.

+0

궁금한 점이 있습니다. 기능에 camelcase를 사용하면 안되는 이유는 무엇입니까? – Elliot

+7

@Elliot Ruby 규칙은 클래스와 모듈 이름에'Upper :: CamelCase'를 사용하고, 변수와 메소드 이름에는'snake_case'를 사용하고, 상수에는 UPPER_CASE – axelarge

관련 문제