La variable f
que vous créez dans la première ligne est une référence à votre FormBuilder. Par défaut, il référence ActionView::Helpers::FormBuilder
ou vous pouvez créer le vôtre.
L'assistant FormBuilder pour les zones de texte est appelé text_area
. Les aides de FormBuilder sont plus intelligentes que les aides HTML classiques. Les modèles Rails peuvent être imbriqués logiquement, et vos formulaires peuvent être écrits pour refléter cela; L'une des principales choses que les assistants FormBuilder font est de garder une trace de la façon dont chaque champ particulier se rapporte à votre modèle de données.
Lorsque vous appelez f.text_area
, depuis f
est associée à une forme nommée :ad
et le champ est nommé :text
il va générer un champ nommé ad[text]
. C'est une convention de paramètres qui sera automatiquement analysée dans un Hash sur le serveur: { :ad => { :text => "value" } }
au lieu d'une liste de paramètres. Ceci est une grande commodité, car si vous avez un modèle nommé Ad
, vous pouvez simplement appeler Ad.create(params[:ad])
et tous les champs seront remplis correctement.
text_area_tag
est l'assistant générique qui n'est pas automatiquement connecté à un formulaire. Vous pouvez toujours faire faire les mêmes choses que FormBuilder#text_area
, mais vous devez le faire manuellement. Cela peut être utile dans les situations dans lesquelles un assistant FormBuilder n'est pas prévu.
J'ai ce problème
wrong number of arguments (3 for 2)
– maria@maria Lorsqu'elle est utilisée avec le générateur de formulaire, la méthode accepte uniquement deux arguments. Voir la mise à jour – meagar