Die f
Variable, die Sie in der ersten Zeile schaffen ist ein Verweis auf Ihre Formbuilder. Standardmäßig verweist es auf ActionView::Helpers::FormBuilder
oder Sie können Ihre eigenen erstellen.
Der FormBuilder-Helper für Textareas heißt text_area
. FormBuilder-Helfer sind schlauer als normale HTML-Helfer. Rails-Modelle können logisch verschachtelt werden, und Ihre Formulare können so geschrieben werden, dass sie dies widerspiegeln. Eines der wichtigsten Dinge, die FormBuilder-Helfer tun, ist, zu verfolgen, wie sich jedes bestimmte Feld auf Ihr Datenmodell bezieht.
Wenn Sie f.text_area
nennen, da f
mit einer Form :ad
und das Feld wird :text
genannt assoziiert genannt es wird ein Feld ad[text]
Namen erzeugen. Dies ist eine Parameterkonvention, die automatisch in einen Hash auf dem Server zerlegt wird: { :ad => { :text => "value" } }
anstelle einer flachen Liste von Parametern. Dies ist ein großer Vorteil, denn wenn Sie ein Modell mit dem Namen Ad
haben, können Sie einfach Ad.create(params[:ad])
anrufen und alle Felder werden korrekt ausgefüllt.
text_area_tag
ist der generische Helfer, der nicht automatisch mit einem Formular verbunden ist. Sie können es immer noch tun, die gleichen Dinge wie FormBuilder#text_area
, aber Sie müssen es manuell tun. Dies kann in Situationen nützlich sein, die ein FormBuilder-Helper nicht abdecken soll.
Ich habe dieses Problem
wrong number of arguments (3 for 2)
– maria@maria Bei Verwendung mit dem Formular-Generator akzeptiert die Methode nur zwei Argumente. Siehe aktualisierte Antwort. – meagar