Переменная f
, которую вы создаете в первой строке, является ссылкой на ваш FormBuilder .По умолчанию он ссылается на ActionView::Helpers::FormBuilder
или вы можете создать свой собственный.
Помощник FormBuilder для текстовых областей называется text_area
.Помощники FormBuilder умнее обычных помощников HTML.Модели Rails могут быть вложены логически, и ваши формы могут быть написаны для отражения этого;одна из основных вещей, которые делают помощники FormBuilder, это отслеживание того, как каждое конкретное поле связано с вашей моделью данных.
Когда вы вызываете f.text_area
, так как f
связан с формой с именем :ad
поле с именем :text
создает поле с именем ad[text]
.Это соглашение о параметрах, которое будет автоматически анализироваться в Hash на сервере: { :ad => { :text => "value" } }
вместо простого списка параметров.Это очень удобно, потому что если у вас есть Модель с именем Ad
, вы можете просто позвонить Ad.create(params[:ad])
и все поля будут заполнены правильно.
text_area_tag
- это общий помощник, который неподключен к форме автоматически.Вы все еще можете заставить его делать то же самое, что и FormBuilder#text_area
, но вы должны сделать это вручную.Это может быть полезно в ситуациях, которые хелпер FormBuilder не предназначен для покрытия.