NoMethodError when saving checked data in checkbox


#1

Another question from me, a new person to ROR.

table a (has column id and name) and table b (has column id and name),
they have many_many relationship. so, joint table a_b introduced. a_b
only has a_id and b_id.

I am using

<% for b in @bs %>
<%= check_box(“b”, b.id, (@a.bs.include?(b) ?
{:checked => ‘checked’} : {:checked => false} )) %> <%= b.name %>
<% end %>

to show all available b for a. it works.

I am using

def update
@a = A.find(params[:id])

b = B.find(params["b"].to_i)
unless @a.bs.include?(b)
  @a.bs << b
end

if @a.update_attributes(params[:a])
  flash[:notice] = 'A was successfully updated.'
  redirect_to :action => 'show', :id => @a
else
  render :action => 'edit'
end

end

to save all info into table a and joint table a_b

however, I got the following error message:

NoMethodError in AController#update

undefined method `to_i’ for {“1”=>“1”, “2”=>“0”, “3”=>“0”,
“4”=>“1”}:HashWithIndifferentAccess

Any idea how to fix it? thanks.