Creating Radio Buttons

Creating radio buttons is a little more complicated and not something that the scaffolding will do for you. Just as when you create radio buttons in HTML, radio buttons in Rails are created as independent objects, united only by a naming convention. Radio buttons are often effectively used for small selection lists, so this example will focus on the country field, offering just a few options.

For the first round, we’ll just create some linked buttons by brute force, as shown in Example 6-3.

Example 6-3. Asking Rails to create a specific list of linked radio buttons

<p>
    <b>Country</b><br />
    <%= f.radio_button :country, 'USA' %> USA<br />
    <%= f.radio_button :country, 'Canada' %> Canada<br />
    <%= f.radio_button :country, 'Mexico' %> Mexico<br />
</p>

This will generate the result shown in Figure 6-2.

Simple radio buttons added to a Rails-based form

Figure 6-2. Simple radio buttons added to a Rails-based form

The HTML this created is pretty simple:

<p>
    <b>Country</b><br />
    <input id="person_country_usa" name="person[country]" type="radio"
value="USA" /> USA<br />
    <input id="person_country_canada" name="person[country]" type="radio"
value="Canada" /> Canada<br />
    <input id="person_country_mexico" name="person[country]" type="radio"
value="Mexico" /> Mexico<br />
</p>

If the underlying :country object had had a value that matched any of these, Rails would have added a checked="checked" attribute to the input element. ...

Get Learning Rails: Live Edition 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.