Creating Text Fields and Text Areas
Railsâ scaffolding included only two kinds of text fields in the body of the form:
<%= f.text_field :name %> ... <%= f.text_area :description %>
Creating a field using text_field
results in a single-line form field, generating HTML
like:
<input id="person_name" name="person[name]" size="30" type="text" />
The text_area
results arenât much more complicated, though they support
rows and columns rather than just a size in characters:
<textarea cols="40" id="person_description" name="person[description]" rows="20"></textarea>
Both of these use a convention to come up with an id
attribute, one that could be handy if you need to apply
stylesheets. Both also use a convention to create the name
attribute,
type[property]
, which youâll need to know if
you want to create HTML forms by hand that feed into Rails controllers.
The rest is fairly genericâa size of 30 characters for the text_field
and 40 columns by 20 rows for the
text_area
.
If you want to add more attribute values to your text_area
or text_field
, or change the default values, you
can just add named parameters. For example, to change the size of the
description to 30 columns by 10 rows, you could write:
<%= f.text_area :description, :cols => 30, :rows => 10 %>
This will generate:
<textareacols="30"
id="person_description" name="person[description]"rows="10"
></textarea>
That same approach works for any attribute you want to add or modify, though you should definitely be cautious about modifying ...
Get Learning Rails now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.