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 %>