O'Reilly logo

Learning Rails: Live Edition by Edd Dumbill, Simon St. Laurent

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Labels

Rails supports a common feature of HTML that makes forms feel much more professional: labels. When labels are explicitly connected to the fields, clicking on the label shifts focus to the field. It gives users a bigger target to hit and simplifies accessibility as well.

Labels are easy. To make the headline “Name” associate with the field right below it, the scaffolding code uses:

<p>
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </p>

The generated HTML contains a bit of extra information the browser uses to make the association:

<p>
    <b><label for="person_name">Name</label></b><br />
    <input id="person_name" name="person[name]" size="30" type="text" />
  </p>

If you click on the word “Name,” focus will shift to the field for entering a name just below it.

If you want the label to say something other than the name of the field, just add a string as the second argument, as in:

<%= f.label :name, 'Your name' %>

This will generate:

<b><label for="person_name">Your name</label></b><br />

The label method is a nice feature, but at the same time it seems as if there’s a good deal of repetition going on in this code.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required