Collection of Check Boxes and Labels

So I have a collection of books. I want users to be able to check which
of the books they are interested in. I want the name of the book next
to the check box to be clickable so that it is easy to select.

In my view I have <%= check_box_tag "books[]", book.id %><%= book.name
%> inside of an iteration.

This produces HTML of: <input id="books[]" name="books[]"
type="checkbox" value="306" /> Hamlet

I want to use a label and I know the "for" property in the label needs
to refer to the id of the input tag. However, my id for the input tag
is "books[]" for all books.

This has the benefit of creating a collection in params[:books] but I
can't figure out how to set the label.

I looked online and found things about labels and checkboxes but nothing
specific to this scenario.

Any guidance would be much appreciated.

Cheers,

John

John Honovich wrote:

So I have a collection of books. I want users to be able to check which
of the books they are interested in. I want the name of the book next
to the check box to be clickable so that it is easy to select.

In my view I have <%= check_box_tag "books[]", book.id %><%= book.name
%> inside of an iteration.

This produces HTML of: <input id="books[]" name="books[]"
type="checkbox" value="306" /> Hamlet

I want to use a label and I know the "for" property in the label needs
to refer to the id of the input tag. However, my id for the input tag
is "books[]" for all books.

This has the benefit of creating a collection in params[:books] but I
can't figure out how to set the label.

Something like this should work, and also allow you to retain
the checks after an invalid post:

<%= check_box_tag "books[]", book.id,
     params[:books] && params[:books].include?(book.id.to_s),
     :id => "book_#{book.id}_cb"
%>

Thanks, Mark! It worked. Appreciate the help.