Select form helper and css attributes

I am writing a test suite which depends upon begin able to use the html id attribute so that the tests are display language independent. The <option> tag supports this attribute. In fact it supports, among others, the CLASS, DISABLED, ID, LABEL, SELECTED, STYLE, TITLE, and VALUE attributes. What I cannot seem to discern from the select API is how to set the ID attribute on a specific option.

The API refers to options_for_select but I cannot see from that how to accomplish what I desire.

The specific case that I am dealing with involves a select box for yes or no. The model attribute is a boolean. I desire to have this sort of output from the form builder:

<p>   <b>     <label class="input_box_label"              for="select_is_invoicable"               id="label_is_invoicable">        Issue Invoices in this Currency     </label>   </b>   <br/>     <select id="select_is_invoicable"           name="currency[is_invoicable]"           size="1"           title="May invoices be issued in this currency?">

       <option value="true"                   id="invoicable_true>Yes</option>        <option value="false" selected="selected"                   id="invoicable_false">No</option>     </select> </p>

I can get everything except the id="invoicable_true" and id="invoicable_false" against their specific options.

Is this possible with the existing select form helper or needs be I roll my own?

Assuming I understand the issue correctly then to achieve this I use inside a form_for. This takes an array of values and ids for the options. I must admit though that I use integer values for the id values so whether this will work in the way you require I am not sure.


Colin Law wrote:

<% form_for(@note) do |f| %> ...     <%= f.label :location_id %><br />     <%= :location_id, Location.get_names_and_ids %>


<label for="note_location_id">Location</label><br /> <select id="note_location_id" name="note[location_id]"><option value="31">Brechfa Blaen-hauliw 1 SN535364</option> <option value="32">Brechfa Blaen-hauliw 2 SN531362</option>...

Which is not what you are looking for at all :frowning:

On second thoughts I think you may have to do it yourself.