Hey guys I\'ve been using the has_and_belongs_to_many relationship with checkboxes example from the Railscast Episode #17 . I had some problems and now everything is workin
The check_box
tag must look like this for it to work:
<%= check_box "user", "user_interest_ids", {:checked => @user.interests.include?(interest), :name => 'user[interest_ids][]'}, interest.id, nil %>
In my ad <-> ad_sizes habtm relationship I'm using this code:
<% @ad_sizes.each do |s| %>
<li>
<%= check_box "ad", "ad_size_ids", {:checked => @ad.ad_sizes.include?(s), :id => "ad_size_#{s.name}", :class => 'checkbox', :name => 'ad[ad_size_ids][]'}, s.id, nil %>
<label class="checkbox" for="<%= "ad_size_#{s.name}" %>"><%= s.description %></label>
</li>
<% end %>
I played around with the form and the correct code is this ==>
<% form_for @user do |f| %>
<% for interest in Interest.find(:all) %>
<div>
<%= check_box_tag "user[interest_ids][]", interest.id, @user.interests.include?(interest) %>
<%= interest.name %>
</div>
<% end %>
<p>
<%= f.submit 'Edit' %>
</p>
<% end %>
I'm so happy! So apparently the problem was :user which should the be object @user.