routing error in partial when rendered from another controller

in my routes.rb I have a route

resources :projects do
  member do
     put "change_photo"
  end
end

checked with rake routes CONTROLLER=projects

  change_photo_project PUT /projects/:id/change_photo(.:format) projects#change_photo

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

VIEWS
projects/show.html.haml
        .span4= render :partial => "projects/right_show"

projects/_right_show.html.haml
..
     = form_for @project, :url => change_photo_project_path, :html =>
{ :multipart => true , :method => :put} do |f|
         = f.file_field :photo
       = f.submit t(:update)

this is working fine

Now I am trying to display the same partial from another controller ,
orders#new

orders_controller.rb
  def new
    @project = Project.find(params[:project_id])
  end

VIEWS
orders/new.html.haml
        .span4= render :partial => "projects/right_show"

but then I get a routing error
No route matches {:action=>"change_photo", :controller=>"projects"}
Try running rake routes for more information on available routes

I tried to pass the @project object
= render :partial => "projects/right_show", :object => @project

but no way , Routing Error ..
and the rake routes doesn't show me anything wrong or missing ...

where am I wrong ?

Compare the generated html for the one that works and the one that
doesn't (View > Page Source or similar in the browser) then you will
see what the difference is and should be able to work out what is
wrong.

Colin