2016-06-25 14 views
1

Ich verwende Rails Admin Gem (Ruby On Rails) und ich muss ein Dropdown-Feld auf einem Formular anzeigen.Rails Admin, wie Drop-Down-Feld

ich überprüfen, über das Hinzufügen von Enum-Methode Klassendefinition von Probe here:

Aber das funktioniert nicht in meinem Fall: das Ergebnis erhalte ich sind Werte innerhalb Textbox nicht in Dropdown rails admin .

Was mache ich hier falsch?

+1

Haben Sie Spalte "Status" in der Datenbanktabelle Tests? –

+0

Nein, du denkst also ich muss es auch in db haben? – Nezir

+1

Ja, Sie brauchen es. Sonst wird was für create action erstellt, die Sie definieren. Mittelwert Wo wird der Wert von 'status' gespeichert, wenn der Benutzer das Formular abschickt. Ich habe eine Antwort mit einem Verweis auf die Dokumentation hinzugefügt. Bitte Folge –

Antwort

2

Here ist eine offizielle Dokumentation für Rails Admin Enumeration.

Es besagt, dass, wenn Sie bereits eine Datenbankspalte haben, für die Sie ein Dropdown möchten, dann einfach fügen Sie eine Methode COLUM_NNAME_enum hinzu und alles wird sorgfältig erledigt. Wenn Sie beispielsweise ein Dropdown für die Spalte status möchten, müssen Sie in Ihrem Modell eine status_enum-Methode definieren.

Andere Ansatz sagt direkt die field, dass wir enum für dieses Feld verwenden möchten, so gibt es 2 Möglichkeiten, das zu tun.

class Test << ActiveRecord::Base 

    rails_admin do 
     create do 
     field :status , :enum do 
      enum_method do 
      :status_enum 
      end 
     end 
     end 
    end 

    #Here is other simple option 

    rails_admin do 
     create do 
     field :status , :enum do 
      enum do 
      [['Actice',1],['Pending',0]] 
      end 
     end 
     end 
    end 
    end