Hallo beinander,
warscheinlich seit ich den Server auf eine neue Platte umgezogen habe,
besteht folgendes Phänomen:
Model: schedule
title:string, body:text, point_of_time:timestamp
class Schedule < ActiveRecord::Base
validates_presence_of :title, :body, :point_of_time
end
Im Update-View folgendes:
<-- Originalwert
<-- das Format ist ok und hier egal
für den Body das gleiche…
Im Controller siehts folgendermaßen aus:
link = Schedule.find(params[:id])
if link.update_attributes!(params[:termine])
^^^^^^^ Exception: ActiveRecord::RecordInvalid
Und zwar ist der Wert von point_of_time angeblich leer!
Ist er aber nicht, wie ein Blickk in das Logfile beweist.
Lasse ich jedoch ‘validates_presence_of :point_of_time’ weg,
schreibt er mir tatsächlich NULL in die Spalte der Tabelle!
Aber es geht über script/console und auch auf dem
Testsystem - hab es grad ganz frisch aufs Prod-System übernommen.
Achso - die Parameter:
“termine”=>{“title”=>“PROBLEM, PROBLEM”,
“body”=>“DER TEXT”,
“point_of_time”=>“18.08.2008 - 00:00”}}
Ich sehe hier klar, das der Parameter point_of_time vorhanden
und gesetzt ist.
Auf beiden Kisten Rails 2.1.0 / Debian-Lenny / Postgres 8.3.3.
Die Ruby-Versionen unterscheiden sich jedoch:
Testsystem: ruby 1.8.6 (2008-02-26 patchlevel 5000) [i686-linux]
Produktiv.: ruby 1.8.6 (2008-08-08 patchlevel 286) [i686-linux]
(beides mal Handcomplilate)
Hier steig ich aus: wieso hat das ältere System einen größeren
Patchlevel als das vor 3 Wochen neu installierte? Und meine eigentliche
Frage: kann das damit zusammen hängen - und wieso überhaupt… ;(?
ratlos, Torsten