Updating one to many

I have a timesheet that has many timesheet items with it. I am able to insert records to the parent TIMESHEET table and the child TIMESHEET_ITEMS table. My problem is when I edit the page for an existing timesheet and the items within it and try to update one of the item, it creates a new record instead of updating it. Im trying to figure out what the proper way is to update the attributes of a child record without creating a new one.

The model is defined as:

class Timesheet < ActiveRecord::Base   has_many :timesheet_items end

class TimesheetItem < ActiveRecord::Base   belongs_to :timesheet   has_many :timesheet_time_items end

My controller is:

def update     @timesheet = Timesheet.find(params[:id])     @timesheet.timesheet_items.build(params[:timesheet_item])     if @timesheet.update_attributes(params[:timesheet])       flash[:notice] = 'Timesheet was successfully updated.'       redirect_to :action => 'show', :id => @timesheet     else       render :action => 'edit'     end   end

My snippet of the jsp page:

<%= start_form_tag :action => 'update', :id => @timesheet %>

    <%= submit_tag 'Submit Timesheet' %> <% for timesheet_item in @timesheet.timesheet_items %> <p> ID: <%= timesheet_item.id %> -

<%= select("timesheet_item", "work_category", WorkManagementType.find(:all, :conditions => "code_table = 'CATEGORY'", :order => "name DESC").collect {|workmgmttype| [ workmgmttype.name, workmgmttype.name ] }, { :selected => timesheet_item.work_category, :include_blank => true}) %>

<%= select("timesheet_item", "work_activity", WorkManagementType.find(:all, :conditions => "code_table = 'ACTIVITY'", :order => "name DESC").collect {|workmgmttype| [ workmgmttype.name, workmgmttype.name ] }, { :selected => timesheet_item.work_activity, :include_blank => true }) %> </p>

<% end %>