2010-12-20 4 views
1

임대 기간이 시작 및 종료 날짜 인 테이블이 있습니다. 그런 다음 새 임대료가 기존 임대료의 시작일과 종료일과 겹치지 않도록 유효성 검사를 생성했습니다.필드가 변경되지 않은 경우 업데이트 작업에서 자체를 제외하는 유효성 검사

물건은, 그것을 갱신하기 위해 임대료를 클릭 할 때 그리고 나는 어떤 필드도 바꾸지 않고 업데이트를 클릭하면됩니다. 그것은 그 자체로 유효성을 검사하고 그것의 중복이 기존의 기록이라고 말한다. (기존 레코드는 그 자체가 참조하는 것입니다.)

내가하려는 것은 내가 유효성을 자체에서 제외시킬 수있는 방법입니다. 이것이 나의 유효성 검사가 어떻게 생겼는지입니다.

def should_not_overlap_rental_periods 
    errors.add(:start_date, "can't overlap other rental periods") if self.rents.where("end_date <= ? and start_date >= ?", self.end_date.strftime("%Y-%m-%d"), self.start_date.strftime("%Y-%m-%d")).count > 0 unless self.rents.blank? 
end 
+1

코드 블록에 나타나도록 코드를 다시 포맷했습니다. 메소드의 내용이 너무 넓은 단일 행에 있지 않도록 다시 형식화 할 수 있습니다. – Phrogz

답변

관련 문제