2009-04-17 6 views
0

In den letzten paar Tagen habe ich versucht, eine Lösung für ein active_record Problem zu bekommen, das mich geplagt hat. Beiträge auf railsforum und stackoverflow sind völlig trocken geworden. Die Länge und der Detaillierungsgrad dieser Beiträge mögen die Kommentatoren davon abhalten, also versuche ich es noch einmal - kurz.Warum bricht active_record das Verhalten von Ruby's Trap und wie arbeite ich damit?

Unter Windows ist das Trap-Verhalten in meinen Skripten normal - bis ich "active_record" benötige, "zu welchem ​​Zeitpunkt Traps nicht mehr richtig funktionieren. Sie laufen überhaupt nicht und es verlässt meine Datenbank in Unordnung.

Das betreffende Skript interagiert mit anderen Skripten auf anderen Systemen durch aktive Aufzeichnung. Wenn ein Benutzer control-c aufruft oder das Skript aus einem anderen Grund beendet wird, ist es wichtig, dass das Skript die Datenbank über das bevorstehende Doom des Skripts informiert, bevor es beendet wird. Mit der Falle außer Betrieb, stecke ich fest.

Gibt es eine Problemumgehung? Wenn Sie an Testcode interessiert sind, sehen Sie sich meine verlinkten Posts an. Das Problem kann in nur wenigen Zeilen reproduziert werden.

Danke ...

Antwort

1

Haben Sie in Betracht gezogen, Ruby auf der Windows-Plattform zu aktualisieren? Ich habe einige Tests mit your code sample und kam mit den folgenden Ergebnissen:

  • Rubin 1.8.6-p36, Gem 1.3.2, 2.2.2 Active: FAILS
  • Ruby-1.8.7-p72, Gem 1.3.1, 2.1.0 Active: WORKS
  • Rubin 1.8.7-p72, Gem 1.3.2, 2.2.2 Active: WORKS
  • Rubin 1.9.1-p0, Gem 1.3.1 , ActiveRecord 2.3.2: WORKS manchmal