Object saved before validated?


I'm having a weird problem: When I add a product via webform it's being
saved before validated.

Example: I fill out the form for a product named "Test", I forget to
type in the price so the error "Price can't be blank" and it returns to
the form. After I typed in a price it says "Product 'Test' already
exists" because it's been saved the first time already.

def create_product
    @product = Product.new(params[:product])
    respond_to do |format|
      if @product.save
        flash[:notice] = 'Product was successfully created.'
        format.html { redirect_to :action => 'index' }
        format.xml { render :xml => @product, :status => :created,
:location => @product }
        format.html { render :action => "new_product" }
        format.xml { render :xml => @product.errors, :status =>
:unprocessable_entity }

  validates_presence_of :title, :description, :image, :category
  validates_numericality_of :price
  validates_uniqueness_of :title

Has anyone an idea why this is happening?