has_many :through full stack help

I am trying to implement HMT for the first time and having a ton of trouble. I would like to be able to have the user check a checkbox and fill some extra fields for data input. I have tried so many iterations borrowed from different places I found on the web, none seem to work quite right. Essentially I have two models: 'practice' and 'system' where a practice can have one or many systems and I have a join model called 'implementation' where I also store some additional attributes such as who implemented the software and when. I have now rolled all my code back to the basics following the HABTM railscast. So right now when I check a checkbox (choosing the system) the join model (implementation) does get both system ID's but I cant figure out how to correctly add the additional 3 fields and have them stored when I save. I have included below what I think is relevant, I am beyond just hints at this point, I need help with the code itself - just cant get it to work. THANK YOU THANK YOU if you can help

-------PRACTICE MODEL------- class Practice < ActiveRecord::Base

attr_accessible :name, :tax_id, :location_ids, :employee_ids, :system_ids

  has_and_belongs_to_many :employees   has_and_belongs_to_many :locations

  has_many :implementations   has_many :systems, :through => :implementations

  validates_presence_of :name, :tax_id

end

-----SYSTEM MODEL------- class System < ActiveRecord::Base

attr_accessible :system_publisher, :system_name, :system_type, :system_version,                   :system_version_certified, :practice_ids

  has_many :implementations   has_many :practices, :through => :implementations end -----IMPLEMENTATION MODEL----- class Implementation < ActiveRecord::Base

attr_accessible :system_start_date, :system_stop_date, :system_implemented_by, :system_ids, :practice_ids

  belongs_to :system   belongs_to :practice end ----PRACTICE CONTROLLER----

class PracticesController < ApplicationController

  #added for auto complete text (HABTM)   #auto_complete_for :location, :name   #auto_complete_for :employee, :first_name

  def index     @practices = Practice.name_like_all(params[:search].to_s.split).ascend_by_name     #@practices = Practice.all   end

  def show     @practice = Practice.find(params[:id])   end

  def new     @practice = Practice.new   end

  def create     @practice = Practice.new(params[:practice])

    if @practice.save       flash[:notice] = "Successfully created practice."       redirect_to @practice     else       render :action => 'new'     end   end

  def edit     @practice = Practice.find(params[:id])   end

  def update

    params[:practice][:employee_ids] ||=     params[:practice][:location_ids] ||= #? # params[:practice][:system_ids] ||= #?

    @practice = Practice.find(params[:id])     if @practice.update_attributes(params[:practice])       flash[:notice] = "Successfully updated practice."       redirect_to @practice     else       render :action => 'edit'     end   end

  def destroy     @practice = Practice.find(params[:id])     @practice.destroy     flash[:notice] = "Successfully destroyed practice."     redirect_to practices_url   end end PRACTICE _form <% form_for @practice do |f| %>   <%= f.error_messages %>   <p>     <%= f.label :name %><br />     <%= f.text_field :name %>   </p>   <p>     <%= f.label :tax_id %><br />     <%= f.text_field :tax_id %>   </p>

<p>     <strong>Employee(s):</strong>     <% for employee in Employee.find(:all) %>     <div>         <%= check_box_tag "practice[employee_ids]", employee.id, @practice.employees.include?(employee) %>         <%= employee.first_name %> <%= employee.last_name %>     </div>     <% end %> </p> <p>     <strong>Location(s):</strong>     <% for location in Location.find(:all) %>     <div>         <%= check_box_tag "practice[location_ids]", location.id, @practice.locations.include?(location) %>         <%= location.name %>     </div>     <% end %> </p>

<% for system in System.find(:all) %> <div>   <%= check_box_tag "practice[system_ids]", system.id, @practice.systems.include?(system) %>   <%= system.system_name %> </div> <% end %>

<p><%= f.submit %></p> <% end %>