In Rails 3 wie sollte ich eine Modellspalte mit begrenzten Möglichkeiten verwalten

8

In meiner Rails 3-Anwendung habe ich zahlreiche Modelle mit Spalten, die eine begrenzte Auswahl haben (IE eine Auswahlbox). Es scheint in diesen Fällen übertrieben zu sein, ein anderes Modell und eine Beziehung zum ursprünglichen Modell zu erstellen, nur um die Auswahl zu verwalten.

Eine Option, die ich mir vorstellen kann, ist, nur ein Auswahlfeld zu erstellen und die Auswahlmöglichkeiten dort zu haben, aber das scheint nicht sehr DRY zu sein. Hat jemand einen guten Vorschlag, wie man mit dieser Situation umgeht?

Danke fürs Schauen.

    
jklina 17.05.2011, 17:07
quelle

4 Antworten

13

Sie könnten eine Konstante in Ihrem Modell wie folgt erstellen

%Vor%

Dies kann dann verwendet werden, um ein Auswahlmenü in einer Ansicht sehr einfach zu füllen

Beispiel mit formtastic

%Vor%     
Jimmy 17.05.2011, 17:16
quelle
7

Normalerweise mache ich das mit einer konstanten Liste im Modell.

%Vor%

Und in der Ansicht:

%Vor%     
Austin Taylor 17.05.2011 17:17
quelle
1

Sie können auch das enum_column-Plugin verwenden: Ссылка

Sie können dann Ihre Auswahlfelder in Ihren Ansichten wie folgt rendern:

%Vor%

(Modell ist ein Beispiel für einen Modellnamen, z. B. Buch oder Produkt oder was auch immer Ihre Anwendung eigentlich ist.)

    
cailinanne 17.05.2011 19:03
quelle
0

In einigen Fällen erzeuge ich einfach einen Hash der Optionen und verwende Klassenmethoden, um sie anzuzeigen und zu setzen. Zum Beispiel könnte ein Problemmodell mit verschiedenen Status wie folgt aussehen:

%Vor%

Dann speichern Sie einfach den ganzzahligen Wert in der status_id des Modells. Sie können auch Getter / Setter konfigurieren.

    
Tom Rossi 17.05.2011 17:18
quelle