2014-04-14 8 views
2

현재 나는 다음 만 년 일정 값 이상으로 받아들이는 검증, 루비를 추가하는 방법 : 그러나레일에

validates :year, presence: true 

을, 나는 '이 나는 또한 돈 1960 년 이후에 만 년을 검증 할 필요가 수동으로 모든 연도를 입력하고 범위 내에있는 연도 만 거절해야합니다. 또한, 연도가 현재 연도보다 큰 경우 유효하지 않아야합니다.

+0

'type'이 year''무엇입니까? – vee

+0

정수 (숫자) – maudulus

답변

4

numericality 검증 여기서 일해야

validates :year, 
    numericality: { greater_than: 1960, less_than_or_equal_to: -> { Date.current.year } } 
+0

레일 4와 동일합니까? 나는 그것이 될 것 같아요'의 유효성을 검사 : 년, numericality : {GREATER_THAN을 : 1959, LESS_THAN : Date.current.year + 1}' – maudulus

+1

또한, 그것은을 포함하기 위해 (내년 이하가 될 필요가 없습니다 것입니다 현재 년도), 1959 년보다 더 (1960 년까지 포함)? – maudulus

+1

@modulus,'less_than' 대신'less_than_or_equal_to'를 사용하십시오. 이것을 반영하기 위해 답변이 업데이트되었습니다. 이전에 잘못 읽었습니다. :) '그 작품 {Date.current.year : LESS_THAN_OR_EQUAL_TO 1960 GREATER_THAN_OR_EQUAL_TO :} 년, numericality을 : – vee