rake / rails .save! Datenbank wird nicht aktualisiert

8

Ich versuche, Änderungen in meiner Datenbank durch eine Rake-Aufgabe zu speichern.

In meiner Rake-Aufgabe mache ich etwas wie:

%Vor%

In meiner Teilklasse mache ich

%Vor%

Dies spart jedoch das Teil nicht. Das save! gibt True zurück. Die puts part.title gibt den gewünschten Wert zurück.

Wenn ich anrufe

%Vor%

Die Datenbank wird ordnungsgemäß aktualisiert. Warum ist das? Mache ich etwas falsch in meiner Schleife? Ich arbeite mit Rails 3.1.3, Rake 0.9.2.2 und MySQL2 0.3.7

    
Benjamin Udink ten Cate 02.01.2012, 06:59
quelle

1 Antwort

17

Das liegt daran, dass ActiveRecord erkennt, dass Attribute durch den Setter geändert werden. Wenn Sie gsub! für ein Attribut verwenden, weiß ActiveRecord daher nicht, dass es die Datenbank aktualisieren muss.

Sie müssen das wahrscheinlich tun:

%Vor%

Aktualisierung von Kommentar

Wenn Sie versuchen, einer anderen Variablen einen Titel zuzuweisen, und dann gsub! Es wird auch nicht funktionieren, weil es das gleiche Objekt ist (Code aus meinem Projekt, Variablennamen sind anders).

%Vor%

Sie müssen .dup die Zeichenkette vor der Änderung eingeben.

%Vor%     
AndrewF 02.01.2012, 07:02
quelle

Tags und Links