내 모델이 검증이 선택된 후 오류를 트리거하지 않고 과거에되지 않습니다 :유효성 검사 시간은 두 번째는 과거가있는 경우 당신은 시간
def time_in_future
if start_at?
errors[:base] << 'The Start Date can not be in the past.' if start_at < Time.zone.now
end
end
하지만이 오류가 저장 내가 시도 할 때마다 그 나는 나의 유효성 검사에서 요구하고있다. 그것은 이치에 맞는다. 나는 시간을 두 번째에 상관없이 내가 저장하면, 시간을 선택하는 데 두 번째 이상 걸릴 때문에 "datetimepicker에 자동으로로드하는 시간이 과거에 시간이 될 것"때문에 저장 "을 클릭하십시오.
몇 가지 해결책을 생각해 보았습니다. 가장 간단한 방법은 오류 메시지를 "The Start Date must be a time in the Future."
으로 쉽게 읽도록하는 것입니다. 또는 저장하기 전에 start_at 시간이 자동으로 저장되므로 나중에 15 분이 지나야합니다.
사람들이 정기적으로 만나는 상황이라고 가정합니다.이 상황을 해결할 더 좋고 더 일반적인 방법이 있습니까?
귀하의 의견에 감사드립니다.
편집 :
내 업데이트 입력 복용 후 방법. "유예 기간"
def time_in_future
if start_at? do
errors[:base] << 'The Start Date must be in the future. Seconds count!' if start_at < DateTime.current + 15.minutes
end
end
end
"start_at?"메서드는 무엇입니까? ? "start_at?"을 확인합니다. 처음과 그곳에서 "start_at"(속성, 나는 추측합니다)를 확인합니다. –
방금 거대한'Time' 두통이 있었고, 배운 것은 언제든지'DateTime.current'를 절대적으로 사용하는 것입니다. 시간대가 있습니다. 당신은 아마'(start_at + 1.minute)
@RonanLopes start_at? 날짜가 미래인지 확인하기 전에 날짜의 존재 여부 만 확인합니다. 나는 여전히 꽤 새로운 것을 개발 중이다. 이것을 쓰는 더 좋은 방법이 있을까? – Lenocam