La variable f
que se está creando en la primera línea es una referencia a su FormBuilder. Por defecto, hace referencia al ActionView::Helpers::FormBuilder
o puede crear uno propio.
El ayudante de FormBuilder para textareas se llama text_area
. Los ayudantes de FormBuilder son más inteligentes que los ayudantes regulares de HTML. Los modelos Rails se pueden anidar lógicamente y sus formularios se pueden escribir para reflejar esto; Una de las cosas principales que hacen los ayudantes de FormBuilder es realizar un seguimiento de cómo se relaciona cada campo en particular con su modelo de datos.
Cuando se llama a f.text_area
, ya f
está asociado a un formulario denominado :ad
y el campo se llama :text
que va a generar un campo denominado ad[text]
. Esta es una convención de parámetros que se analizará automáticamente en un Hash en el servidor: { :ad => { :text => "value" } }
en lugar de una lista plana de parámetros. Esta es una gran conveniencia porque si tiene un modelo llamado Ad
, simplemente puede llamar al Ad.create(params[:ad])
y todos los campos se completarán correctamente.
text_area_tag
es el ayudante genérico que no está conectado a un formulario automáticamente. Todavía puede hacer que haga lo mismo que FormBuilder#text_area
, pero debe hacerlo manualmente. Esto puede ser útil en situaciones que un asistente de FormBuilder no intenta cubrir.
tengo este problema
wrong number of arguments (3 for 2)
– maria@maria Cuando se utiliza con el generador de formularios, el método solo acepta dos argumentos. Ver respuesta actualizada. – meagar