2017-05-01 1 views
0

In Rails, wie kann ich effektiv einen enum "Schlüssel" ändern?So verwenden Sie eine umbenannte Enum

Ich habe eine enum für: Status auf einem Auftragsmodell.

In app/models/order.rb

enum Status: [: new_order,: Verarbeitung: delivered_to_customer, : gestempelt]

Ich habe mit verschiedenen Status ausgesät Aufzeichnungen. Ich habe kürzlich den Namen eines Status von "delivered_to_customer" in "delivered" geändert.

enum Status: [: new_order,: Verarbeitung: geliefert: gestempelt]

In Rails-Konsole, wenn ich bei einer Bestellung sehen, die den "delivered_to_customer" Status vorher hatten, tut es immer noch . order.delivered_to_customer? >> true order.delivered? >> 'undefined method' error

Gibt es eine Möglichkeit, die Getter und Setter für Aufzählungen zu aktualisieren, da es nur ganze Zahlen in der Db gespeichert?

Antwort

1

Scheint, Sie haben die Konsole nicht neu geladen, nachdem Sie die Werte im Modell geändert haben. Versuchen Sie, die Konsole neu zu laden.

Weil Enum Methoden generieren Zeit, wenn Sie Server oder Konsole starten.

Sie können die Dokumentation here überprüfen.

+0

Danke, das hat funktioniert! Ich habe den Konsolenbefehl ausgeführt: Nachladen! zu denken, dass das ausreichte - aber aufzugeben und zurück zu gehen war, was gebraucht wurde. –