2016-06-28 8 views
1

Ich habe einen Anwendungsfall, wo ich 2 Spalten mit der gleichen Enum-Array haben möchte. Unten ist der Beispielcode, den ich versuche zu implementieren. Anfänglich wurde ein Fehler mit dem unteren Code und dem Suffix-Ad-Präfix hinzugefügt.Rails 4.2 Verwaltung mehrerer Spalten mit gleichen Enum-Werten

class Sample 
    enum status1: {initiated: 1, ringing: 2}, _suffix: true 
    enum status2: {initiated: 1, ringing: 2}, _prefix: :stat2 
end 

Nun, wenn ich versuche, das Modell von Schienen-Konsole für den Zugriff auf Werte zuweisen Status1 oder status2 Code unten verwenden, erhalte ich Fehler

s = Sample.last 

NoMethodError: nicht definierte Methode `each_with_index‘ für wahr: Trueclass

Also hier möchte ich mehrere Spalten mit gleichen Aufzählungswerten haben und ihnen Werte zuweisen und speichern können.

+1

Welche Version von Schienen verwenden Sie, weil ich denke, Präfix und Suffix ist nur in Schienen verfügbar 5 – hypern

+0

Ich verwende Schienen 4.2. –

Antwort

1

Rails 4.2 unterstützt nicht die Verwendung von _prefix und _suffix. Dies ist eine Funktion, die mit Rails 5 eingeführt wurde. Sie können sehen, here das Commit zu dem Rails-Master-Zweig, der die Funktion einführt.

Sie müssen entweder die neue rails 5-Version von enum implementieren oder sie einfach manuell vor- oder nachstellen, um Namenskonflikte zu vermeiden. Rails generiert Methoden für das Modell basierend auf den von ihm deklarierten enum-Werten. Daher können zwei identisch benannte enum-Werte nicht den gleichen Namen haben.

Verwandte Themen