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.
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.
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?
Tags und Links ruby-on-rails-3 ruby-on-rails parameters hash form-for