빈 이것은 생각할 필요도없는 종류의 것 같다 때 numericality가 인수 오류가 발생 유효성을 검사하지만 난 번호가 필요하고 미리 정해진 양보다 크거나 작은 있는지 확인하려면 :레일 3/전무
validates :age_min, presence: true, numericality: {
greater_than: 0, less_than_or_equal_to: :age_max
}
나는 시도하고 테스트 할 때
이 테스트는 age_min
이 필요하다는 것을, 그러나
test 'user should not be valid with age min greater than age max' do
user = FactoryGirl.build(:user, age_min: 30, age_max: 20)
assert !user.valid?
end
을 예상대로 작동합니다
test 'user should not be valid without age_min' do
user = FactoryGirl.build(:user, age_min: nil, age_max: 20)
assert !user.valid?
end
내가 얻을 ArgumentError: comparison of Float with nil failed
레일스가 아무 가치도 고려하지 않는다는 것이 이상하게 보입니다. 사용자 정의 유효성 검사기를 작성하지 않고도이 작업을 수행 할 수 있어야하지만 실수가 아닐 수 있습니다.
당신의 검증의 두 무기 호 값에 반대하고 보호 유효성 검사를 분할 할 생각 때문에 실행 중입니다. "presence : true"유효성 검사는 수치 적 유효성 검사가 실행되는 것을 중지하지 않습니다. 나는 당신이 필요하다고 생각합니다 : => Proc 타입 조건을 수치 검증에 쓰지 만, 구문을 알지 못합니다. –