Wie richte ich ein Formular für einen Hash ein?

8

Ich habe einige Daten, die mit einem Modell in einem Hash verknüpft sind. Der Hash wird im Controller generiert: @hash .

Was ist der richtige Weg, um ein Formular für diese Daten zu erstellen?

Ich habe den folgenden Code für die Ansicht erstellt:

%Vor%

Dies generiert das Formular, aber es erstellt jedes Hash-Element als separate Variable im Formular. Dies scheint nicht der richtige Weg zu sein, die Daten zurückzusenden. Ich möchte die Daten als Hash zurückholen und mit params[:hash] darauf zugreifen.

Was ist der beste Weg, dies zu tun?

Arbeiten in Rails 3.07, Ruby 1.9.2.

Danke.

EDIT: Ich hätte das klarstellen sollen. Dieser Code befindet sich in einem Formular, das für ein Modell generiert wurde. Das Formular muss also alle Felder für das Modell sowie den obigen Hash übergeben.

    
B Seven 22.09.2011, 20:49
quelle

3 Antworten

11

Basierend auf diesem Artikel Sie sollten den Namen in text_field_tag ​​in

ändern %Vor%     
nemesv 22.09.2011, 21:08
quelle
2

Meine Antwort bezieht sich nicht ausschließlich auf das Thema, aber ich empfehle Ihnen, sich Ссылка anzusehen. Sie könnten ActiveModel-APIs verwenden, um ein Modellobjekt mit Rails 3 zu simulieren. Damit könnten Sie einfach etwas wie

tun %Vor%

und das Füllen Ihres Objekts mit Rails-APIs belassen.

    
lucapette 22.09.2011 20:56
quelle
0

Wenn Sie die Helfer verwenden, die mit _tag enden, ist das der Fall.

Anstelle von text_field_tag ... verwenden f.text_field ... .

Um einen Hash wie params => {:hash => {:field1 => "", :field2 => ""}} zu erhalten, musst du form_for mit f.input_field_type verknüpfen, anstatt einfach input_field_tag .

Sehen Sie den Unterschied?

    
jefflunt 22.09.2011 20:55
quelle