I am using Ruby on Rails 3 and I would like to know what the :location => ... and head :ok statements mean in following code, how they work and
render ... :location => @user will set the HTTP location header to inform the client of the location of the newly created resource (that is, its URL)
head :ok sets render to return an empty response (so just the header, no body) with status 200. head :ok is shorthand for render nothing: true, status: :ok.
Here's a list of all the :status options you can use for setting the appropriate status code.