Ich möchte überprüfen, ob der Zeitrahmen bei einer Dokumentaktualisierung mit einem anderen überschneidet. Es funktioniert bei der Erstellung, aber ich habe Probleme, etwas zu ändern.Mongoid check Schnittbilder auf Dokumentaktualisierung
Dies ist, was ich bisher:
if Timetracking.where(:begin.lt => params[:timetracking][:end], :end.gt => params[:timetracking][:begin]) && Timetracking.find(params[:id]) != params[:id]
@error = 'Time overlapping with another entry'
render 'timetracking/edit'
else
do update stuff
end
Meine Grundidee, wenn die Zeit zu überprüfen war überlappt und wenn die ID ist etwas anderes als das bin ich zu aktualisieren. Ich habe auch eine andere Abfrage ohne Erfolg versucht:
if Timetracking.where(:begin.lt => params[:timetracking][:end], :end.gt => params[:timetracking][:begin], :id.ne => params[:id])
@error = 'Time overlapping with another entry'
render 'timetracking/edit'
else
do stuff
end
Jetzt bin ich ein bisschen fest. Vielleicht könnte mich jemand in die richtige Richtung drängen. :) Oh, und ich benutze Padrino.
Vielen Dank.
Thank you very much. Ich habe das Problem jetzt mit einer OR-Anweisung gelöst. Jetzt funktioniert es wie erwartet. EDIT: Sieht aus wie ich bin zu dumm, um in Kommentaren zu formatieren. :) – BlindPenguin