フォームのフィールドの1つを検証するバリデーターがあります。クラス付きフィールドの戻り値ActiveSupport::TimeWithZone
validate :begins_at_not_in_past
def begins_at_not_in_past
return unless self.state == 'Scheduled'
if self.begins_at != nil && self.begins_at < (Time.now - 1.hour)
errors.add(:begins_at, 'Action cannot begin in past')
false
end
end
検証に失敗するとエラーが表示されますが、フォームのデータが無効であってもデータベースに新しいレコードが作成されます。どこで間違えましたか?