So habe ich dieses Modell Termin:Validierung mit zwei diffrent Objekte aber derselben Klasse
validates :purpose, :extra, :appointment_date, :appointment_time, presence: true
und jetzt ist diese Situation: Ich möchte Fehler erhalten, wenn jemand Termin am selben Tag machen wollen und die gleiche Zeit. Also muss ich zwei Objekte der gleichen Klasse vergleichen und habe keine Ahnung, wie ich das machen kann.
nur eine Sache kommt mir in den Sinn
def allready_booked?
@employee = Employee.find(params[:employee_id]) <----- this is the part i dont know how to do it
@appointments = Appointment.where(appointment_date: appointment_date).where(employee_id: employee.id)
@appoitnments.each do |appo|
if(appo.appointment_date == appointment_date)
errors.add(:appoitnemnt_date, "is already booked")
end
end
end
Und ja employee_id ist in Termin Modell
Haben Sie in Betracht gezogen, eine PORO Service Class zu verwenden? Scheint wie ein guter Anwendungsfall für einen. – jvillian
Ich werde es morgen betrachten, vielleicht wird eine andere Antwort kommen, aber trotzdem danke! – proofexak
Sie können versuchen, die Eindeutigkeit zu validieren, indem Sie einen Gültigkeitsbereich übergeben: validiert: Termin_Datum, Eindeutigkeit: {Umfang:: Termin_Zeit} ' –