Edit method and request.put? check

I am trying to use single method for Edit and Update..but doesn't seem to work.

Following is in my view...

<% form_for :project, @project, :html => {:method => :put}, :url => {:action => 'edit'} do |f| %>   Name: <br/> <%= f.text_field :name %> <br/>   Description: <br/><%= f.text_area :description, :rows => 5 %> <br/>   <%= f.submit "Submit" -%> <%= link_to 'Cancel', projects_path -%> <% end -%>

and following is in my controller...

def edit     @project = Project.find(params[:id])

    if request.put?       respond_to do |format|         if @project.update_attributes(params[:project])           flash[:notice] = "Project updated successfully."           format.html {redirect_to(projects_path)}           format.xml {head :ok}         end       end     end

end

but when I press Submit, it says 'nothing responded to 1 (id of project).'

What could be wrong?

<% form_for :project, @project, :html => {:method => :put}, :url =>

You want something like <% form_for :project, project_path(@project), ...