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

from my projects#show I render a partial with a form in it
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 ?

On 19 March 2012 16:12, Erwin [email protected] wrote:

projects/_right_show.html.haml

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 …

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