日期时间验证
问题描述:
我在我的项目中验证存在问题。我需要在保存预订时验证日期时间。 它显示消息“这个日期是保留的。”但总是创造新的预约:( 它可以是3个相同的时间日期值而不是更多。当我在我的代码有问题吗?日期时间验证
(我学习的回报率,所以,请耐心等待。:)
def create
@reservation = Reservation.create!(reservation_params)
@check_count = Reservation.select(:date).where('date = ?', @reservation.date).count
if @check_count <= 3
if @reservation.save!
ReservationMailer.new_service(@reservation).deliver
flash[:success] = "Successfully created reservation."
redirect_to root_path
else
render 'new'
end
else
flash[:error] = "This date is reserved."
render 'new'
end
end
答
当你做
@reservation = Reservation.create!(reservation_params)
它会创建对象并保存检查你的条件之前,你应该做的
@reservation = Reservation.new(reservation_params)
这样它只会初始化它并且不保存,除非您的条件得到满足,即@check_count < = 3 然后当您执行.save。它会被保存。
正确的答案。 :) 我忘了“新”的方法-.-真的感谢您的帮助:) – mgmaciekmg