validate :on not working

[Rails 3.2.1, Ruby 1.9.3]

in a Project model
I am trying to modify the :location attribute validation ( specific
LocationValidator using Geocoder..)
I need now to set it on create only

so I wrote :
  validates :location, :location => { :on => :create }

but when I update the project instance, I get an error :

project.update_attributes(specific_payment:
partner[:specific_payment])
=> false

project.errors
=> #<ActiveModel::Errors:...
@messages={:location=>["?"]

if I add the location attribute in the update , then it works ...
location = project.geocode[:address]
project.update_attributes(specific_payment:
partner[:specific_payment], location: location)
=> true

so, { :on => :create } seems not to be working .. what could be
wrong ?

thanks for your feedback

FORGET ... SOLVED
I found a
validates :name, :subject, :location, :description, :presence => true
few lines above .... ! so the presence validation should be updated
too....

so I wrote :
validates :location, :location => { :on => :create }

why don't you write:

validates :location, :on => :create