Migrationsfehler bei Verwendung von Globalize

9

Vor einigen Jahren (2013) schrieb ich eine Migration, um eines der Felder meines Modells mit Globeize 0.3.0, Rails 3.2.21, Ruby 2.1.6 zu globalisieren:

%Vor%

Und ich habe das entsprechende Übersetzungsattribut hinzugefügt:

%Vor%

Nun möchte ich ein zweites globalisiertes Attribut namens title hinzufügen, also habe ich diese Zeile zu MyModel hinzugefügt:

%Vor%

Noch bevor ich das zweite Migrationsskript geschrieben habe, lösche ich meine Datenbank und führe alle Migrationen durch.

%Vor%

Ich stelle fest, dass das Migrationsskript, das ich 2013 geschrieben habe, fehlschlägt. Wie ist das möglich? Das weiß ich bis jetzt.

Die Methode create_translation_table! in meinem 2013 Migrationsskript fügt der Übersetzungstabelle alle übersetzbaren Felder hinzu, die im Modell gefunden wurden, also sowohl :name als auch :title . IMHO, das ist ein bisschen seltsam, weil dieser Code in der Tat Datenbankänderungen durchführt, die dem Modell nach der Erstellung der Migration hinzugefügt wurden.

Das Juwel "Globalize" versucht, den Typ von :title zu erraten, und es scheint fehl zu schlagen, weil ich diesen Fehler beim Ausführen des Migrationsskriptes 2013 erhalte:

Bad field type for field :title (nil), should be :string or :text

Ich suche nach einem Weg, um eine dieser Optionen zu erreichen:

  • Verhindern Sie, dass Globalize eine Spalte für :title erstellt, wenn Sie das Migrationsskript 2013 ausführen, und erstellen Sie ein Migrationsskript 2015, um diese Spalte ohne Übersetzungstabelle hinzuzufügen (ich denke, diese Option ist besser)
  • Finden Sie heraus, wie Sie im Modell angeben, dass :title eine Zeichenkette ist (Ich habe translates :title, :string bereits probiert und scheint nicht zu funktionieren).
Bustikiller 10.12.2015, 07:59
quelle

1 Antwort

2

Ich hatte zuvor ein ähnliches Problem und eine der gefundenen Lösungen bestand darin, immer die übersetzten Attribute in der Migration anzugeben:

%Vor%

Es wurde auch vorgeschlagen, die Globalisierungsgeneratoren zusammen zu vermeiden und die Übersetzungstabellen manuell zu erstellen:

%Vor%     
Plamena Gancheva 15.12.2015 08:20
quelle

Tags und Links