我需要在我的数据库中创建一个新的日期时间记录,但首先我需要找出已保存的相同日期。我的数据库中的日期增加了4个小时。因此,当有一个日期显示为下午2点时,数据库内的相同日期将显示为下午6点。如果日期相同,则应显示警告窗口。
我正在尝试做这样的事情,但我不能完全确定我是否正确的方向:
def create
@appointment_new = Appointment.new(:start_date => params[:start_date],
:end_date => params[:end_date], :doctor_id => params[:doctor_id],
:user_id => params[:user_id])
@appointments = Appointment.all
hour = appointment_new.start_date.hour
minute = appointment_new.start_date.minute
check = false
@appointments.each do |appointment|
{
?????????????
}
end
if(check)
{
if @appointment.save
flash[:success] = "Welcome!"
redirect_to @user
else
alert("failure!")
end
}
else
// do something
end
你怎么看?谢谢!
答案 0 :(得分:2)
在Appointment
模型中,start_date
可以成为关键吗?然后你可以有这个回调:
before_validation(on: :create) do
self.start_date = start_date + 4.hours if attribute_present?("start_date")
end
然后,由于重复的密钥,模型将无法保存。
不确定你的模型是如何构建的,只是一个想法。