check_box and that automatic hidden_field messes up my form

I'm having a form where the user can select the line items that he wants
to create. All line items are new and don't have an id.
I realized that check_box created a hidden field that's supposed to help
me, but it doesn't work when I receive the params[:line_items]. I get a
double number of line items. I can fix it in the controller, but it's
just ugly. Advices?

<%fields_for 'line_items[]', li do |l|%>
  <%=l.check_box :selected_for_save%> <%=l.hidden_field
:container_id%>
  <%=l.hidden_field :amount%>
<%end%>

line_items:
- !map:HashWithIndifferentAccess
  selected_for_save: "1"
- !map:HashWithIndifferentAccess
  container_id: "1901"
  selected_for_save: "0"
  amount: "490.0"
- !map:HashWithIndifferentAccess
  selected_for_save: "1"
- !map:HashWithIndifferentAccess
  container_id: "1912"
  selected_for_save: "0"
  amount: "465.0"
- !map:HashWithIndifferentAccess
  selected_for_save: "1"
- !map:HashWithIndifferentAccess
  container_id: "1913"
  selected_for_save: "0"
  amount: "465.0"

I'm having a form where the user can select the line items that he
wants
to create. All line items are new and don't have an id.
I realized that check_box created a hidden field that's supposed to
help
me, but it doesn't work when I receive the params[:line_items]. I
get a
double number of line items. I can fix it in the controller, but it's
just ugly. Advices?

Use check_box_tag instead of check_box ?

Fred

Frederick Cheung wrote:

Frederick Cheung wrote:

> Use check_box_tag instead of check_box ?

> Fred

This is what I'm using:

<%=check_box_tag 'line_items[][selected_for_save]' %>
instead of
<%=l.check_box :selected_for_save%>

I find it ugly. I don't want to mix formhelpers with formtaghelpers.

It's kludgy but right now it's the only way if line_items is to be an
array parameter. The way that the form parameter parser detects that a
new array element is starting is when it spots a repeated parameter
name.
If you make line_items a hash parameter you won't have this problem,
ie generate inputs

line_items[1][selected_for_save]
line_items[2][selected_for_save]

(sequential ids 1,2 etc... will do fine, but if you have some more
natural key than you can use that too.)

Fred