Rails 3 Dropdown-Auswahlfelder?

7

Ich arbeite an einer einfachen Intranet-Anwendung, die mit Rails 3.1 erstellt wurde.

Ich habe ein Modell für Links mit den folgenden Feldern:

%Vor%

Ich habe das color-Attribut in eine Klasse in der Ansicht eingefügt, etwa so:

%Vor%

Momentan habe ich im neuen Linkformular nur eine einfache Formulareingabe, in der der Benutzer alles eingeben kann und es wird wie erwartet zur href-Klasse.

Was ich tun möchte, ist eine Dropdown-Liste mit voreingestellten Optionen zu erstellen. Diese Optionen sind einfach rot, grün und blau (als Beispiel). Da dies ziemlich einfach erscheint, glaube ich nicht, dass ein Helfer benötigt wird.

Ich habe ein paar andere Fragen und Antworten zu SO gelesen und sie scheinen Beispiele zu zeigen, wo Sie den Namen gefolgt von einer ID-Nummer haben. Ich möchte nur den folgenden Code haben:

%Vor%

Ich bin mir sicher, dass das einfach ist, aber ich kann mich nicht darum kümmern. Ich habe die Rails-API-Informationen gelesen und der select_for_tag hat mich verwirrt!

    
dannymcc 09.03.2012, 10:53
quelle

3 Antworten

13

Verwenden Sie einfach ein Standard-Select-Element in Ihrem Formular, um die Farbvariable festzulegen:

%Vor%     
Jon 09.03.2012, 11:24
quelle
4

Dabei ist Farbe der Name Ihres Modells für Ihre Farben und f ist das Formularerstellungsobjekt:

%Vor%

Dies wäre der einfachste und direkteste Ansatz, um eine Auswahl mit der URL der Farbe als Wert und dem Namen als Text zu erhalten. Wenn Sie sowohl den Namen für den Wert als auch den Text haben möchten, können Sie Folgendes ändern: url to: name.

Außerdem sollten Sie für die Semantik wahrscheinlich eine @ colours-Auflistung in Ihrem Controller festlegen und diese verwenden, anstatt das Modell aus Ihrer Sicht aufzurufen (um Colour.all zu ersetzen).

UPDATE: Basierend auf Ihrem Kommentar unten und wenn Sie kein Modell für die Sammlung haben und einfach Ihre Auswahl und Werte fest codieren möchten, versuchen Sie:

%Vor%     
miked 09.03.2012 11:01
quelle
3

Sie möchten den Rails-Helfer verwenden, da dann die Rails dafür sorgen, dass die Daten in Ihr Modell übernommen werden. Sie möchten wahrscheinlich so etwas wie das Folgende.

%Vor%

Diese Seite kann ein bisschen wortreich sein, aber es könnte helfen, wie du denkst darüber nach.

    
Mgrandjean 09.03.2012 11:18
quelle