0
我有我的模型中,這驗證後觸發錯誤時,第二個已經過去:驗證時間不過去沒有你所選擇的時間
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」(屬性,我假設) –
我剛剛有一個巨大的'時間'頭痛,我學到的是絕對使用'DateTime.current',只要你可以。它有時區。你可能可以做'(start_at + 1.minute)
@RonanLopes start_at?只是在檢查日期是否在未來之前檢查是否存在日期。我在開發方面還很新,有沒有更好的方法來寫這個? – Lenocam