Ich habe ein FinancialDocument#document_type
Modellattribut. Ich möchte der Benutzer den Dokumenttyp aus einer HTML-Auswahlmenü durch ein Array von Strings bevölkert lassen ...In Rails, wie kann ich ein HTML-Auswahlmenü mit einem Array von Strings implementieren?
doctypes = [ 'Invoice', 'Packing slip', 'Other' ]
für jede Option, die angezeigte Etikett und Rückgabewert identisch sein würde.
Ich schaute auf die select
und collection_select
Helfer, aber sie scheinen darauf ausgerichtet, ein Kind-Modell, nicht nur ein String-Wert. Ich konnte nicht herausfinden, wie ich sie zu meinem Zweck verbiegen sollte.
Hier ist, wie ich versuche, es zu tun (ich verwende Haml, nicht Erb) ...
form_for(@financial_document) do |f|
- doctypes = [ 'Invoice', 'PS', 'Packing slip', 'Other' ]
= f.collection_select @financial_document, :document_type, \
doctypes, :to_s, :to_s, :include_blank => true
ich diesen Fehler ...
undefined method `merge' for :to_s:Symbol
Gibt es eine anderer Helfer, den ich dafür benutzen könnte? Oder eine Möglichkeit, select
oder collection_select
zu verwenden?
Danke, aber das hat nicht für mich funktioniert ... undefinierte Methode 'merge 'für [[" Rechnung "], [" PS "], [" Lieferschein "], [" Andere "]]: Array – Ethan
oh richtig, entfernen Sie das erste Argument und es ist in Ordnung. –