0

我需要在我的数据库中创建一个新的日期时间记录,但首先我需要找出是否已经保存了相同的日期。我数据库中的日期增加了 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

你怎么看?谢谢!

4

1 回答 1

2

在你的Appointment模型中,可以start_date是一个键吗?然后你可以有这个回调:

before_validation(on: :create) do
    self.start_date = start_date + 4.hours if attribute_present?("start_date")
end

然后模型将因为重复键而无法保存。

不确定您的模型的结构,但只是一个想法。

于 2013-10-10T03:53:41.073 回答