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