Ruby Forum Rails Germany > seltsames Problem mit Datumswert im Formular

Posted by Torsten Flammiger (Guest)
on 18.08.2008 23:03
(Received via mailing list)
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:
------------------------
<input id="termine_title"
 maxlength="254"
 name="termine[title]"
 size="60"
 type="text"
 value="PROBLEM, PROBLEM" /> <-- Originalwert


<input id="termine_point_of_time"
 maxlength="18"
 name="termine[point_of_time]"
 size="20"
 type="text"
 value="18.08.2008 - 00:00" /> <-- 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
Posted by Torsten Flammiger (Guest)
on 22.08.2008 17:57
(Received via mailing list)
Torsten Flammiger schrieb:
> Hallo beinander,
> 
> warscheinlich seit ich den Server auf eine neue Platte umgezogen habe,
> besteht folgendes Phänomen:

[...]

>   "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.

ich hab einen unschönen Würgaround gefunden:
Anstatt 'timestamp without timezone' hab ich den Typ 'character varying'
genommen und jetzt gehts komischerweise!

Der Code ist der gleiche geblieben...