2012-10-24 2 views
0

:어떤 경로 일치하는 항목이 없습니다 {: 컨트롤러 => "유물": 행동 => "편집"} 나는 어떤 경로 행동 '편집'</p> <p>컨트롤러에 대한 일치하지 이러한 오류가 계속

def remove_artifact_from_collection 

... do my stuff .. 

render(:action=>:show) 
end 

보기 : 라인이있는 IT 오류

<p><%= link_to 'Edit Evidence Item', edit_artifact_path, :class => 'edit_button' %></p> 

경로 :

resources :artifacts do 
    collection do 
    get 'remove_artifact_from_collection' 
    end 
end 

번들 간부 레이크 노선

당신이 edit_artifact_path에 유물/ID를 제공하지 않을 때문이다
remove_artifact_from_collection_artifacts GET /artifacts/remove_artifact_from_collection(.:format)  {:controller=>"artifacts", :action=>"remove_artifact_from_collection"} 
           artifacts GET /artifacts(.:format)          {:controller=>"artifacts", :action=>"index"} 
              POST /artifacts(.:format)          {:controller=>"artifacts", :action=>"create"} 
           new_artifact GET /artifacts/new(.:format)         {:controller=>"artifacts", :action=>"new"} 
          edit_artifact GET /artifacts/:id/edit(.:format)        {:controller=>"artifacts", :action=>"edit"} 
            artifact GET /artifacts/:id(.:format)         {:controller=>"artifacts", :action=>"show"} 
              PUT /artifacts/:id(.:format)         {:controller=>"artifacts", :action=>"update"} 
              DELETE /artifacts/:id(.:format)         {:controller=>"artifacts", :action=>"destroy"} 
+0

레이크 루트는 무엇을 표시합니까? – DickieBoy

답변

4

. 당신의 이슈를 가정하면 @artifact 인스턴스 변수에, 당신은 사용해야합니다

link_to 'Edit Evidence Item', edit_artifact_path(@artifact), ...

은 또한 사용할 수 있습니다 당신은 객체에 통과하지 못한

link_to 'Edit Evidence Item', [:edit, @artifact], ...

+0

그러면 http://127.0.0.1:3000/artifacts/8220 – user1570144

+0

으로 갈 때 어떻게 작동하는지 이슈 모델에 대한 스캐 폴드를 사용했다면 쇼보기는'edit_artifact_path'를'@ 유물'. – James

+0

당신과 Manjunath가 제안한대로 @artifact를 전달하여 작동합니다. 그래서 나는 그것을 사용하고있다. 감사 – user1570144

1
link_to "Edit Artifact", edit_artifact_path(@artifact) 

.

edit_artifact GET /artifacts/:id/edit(.:format) 

경로에서 볼 수있는 것처럼 id를 지정해야합니다. 따라서 이슈 객체를 포함하는 변수를 전달하십시오.

관련 문제