2016-08-22 5 views
1

Es gibt ein Feld start_time vom Typ datetime in der processes-Tabelle. Der Anfangswert ist auf Time.zone.now festgelegt. Danach darf der Benutzer das Datum nicht ändern, nur die Stunde und Minute dieses start_time-Feldes dürfen sich ändern.Rails: Aktualisierung nur Stunde und Minute des Datetime-Felds

So wird ein Bearbeitungsformular für den Benutzer zur Verfügung gestellt, das nur Stunde: Minute wie "22:43" anzeigt, aber wenn das Formular übergeben wird, wird der Feldwert in aktuelles Datum und Uhrzeit geändert. In der Steuerung habe ich die Standard-Schienen-Anweisung zur Aktualisierung der Werte verwendet:

@process = Process.find(params[:id]) 
@process.update(process_params) 

In dem params ich die Startzeit bekommen als „20.40“

auch versucht, die change Methode, aber es nicht die rettende Änderungen statt Rollbacks.

hour_minute = params[:process][:start_time].split(":") 
@process.start_time.change({hour: hour_minute[0], min: hour_minute[1]}) 

möchte ich nur Stunde und Minute des Feldes Datum aktualisieren, sollten die gleichen bleiben.

Antwort

2

methode rückgabe änderte zeit oder datum aber nicht aktualisiert aktiv selbst aufzeichnen.

können Sie dies für die Aktualisierung tun.

hour_minute = params[:process][:start_time].split(":") 
@process.update(start_time: @process.start_time.change(hour: hour_minute[0], min: hour_minute[1])) 

Hoffe, das wird Ihnen helfen.

Verwandte Themen