2011-06-11 5 views
1

나는 이미지 목록을 가지고 있으며 모든 이미지에 대해 삭제할 수있는 링크가 있습니다.레일 3 - 삭제 항목에 대한 링크

<%= link_to 'delete image', {:controller => 'shops', :action => 'delimg', :imgid => u.id}, :confirm => 'Really?' %> 

데프 로고 풋의 PARAMS : 링크이 보인다 [: imgid] ... 끝

그리고 ID = 로고 및 과 상점을 찾을 수 없습니다 오류 을 얻고있다 app/controllers/shops_controller.rb : 17 :`show '에 - 나는 을 넣으려고'IN SHOW을 넣었습니다. 실제로이 링크를 클릭하면 이 표시되고으로 표시됩니다. 나는 그것이 가능한지 전혀 모른다 ...

누군가 나를 도와 줄 수 있습니까, 문제는 어디에 있습니까?

+0

이 루트가 같은 방법을 보면 않는 routes.rb에서 추가되었다 무엇 존재하는 경로 도우미 : 그리고 그 그것은보기에 다음을 수행 할 수 있습니다? 'delimg'는 상점 리소스의 회원 경로입니까? – DanneManne

+0

routes.rb에서 자원이 있습니다 : 상점 '상점/인덱스'를 받으십시오 '상점/로고'를 받으십시오 . 'delimg'작업은 'shops_controller'클래스에 있습니다 – user1946705

+0

delimg에 대한 경로를 정의 했습니까? 그렇지 않다면 routes.rb에 정의하십시오 –

답변

1

를 작동 한 후

<%= link_to 'delete image', {:controller => 'shops', :action => 'logo', :imgid => u.id}, :confirm => 'Really?' %>

로 귀하의 링크를 modiefy : 것을 추가하여

#routes.rb 
resources :shops do 
    delete :delimg, :on => :member 
end 

을 정의 된 경로가있을 것입니다 delete 메소드에 매핑 된 delimg 액션으로 이동합니다.

<%= link_to 'delete image', delimg_shop_path(u.id), :method => :delete %> 

delimg_shop_path 때문에

+0

감사! 그렇게하는 법을 몰랐습니다. :) –

+0

감사합니다. 작동합니다! 그러나 나는 왜 그 정보를 routes.rb (자원에 관한 것)에 추가 할 필요가 있으며, 컨트롤러에 액션의 이름을 추가하고 "컨트롤러/액션을 얻으십시오"라는 이유만으로 충분하지 않은지 묻고 싶습니다. 그게 일을해야합니까, 아니면? – user1946705

+0

동적 경로 일치 ': controller (/ : action (/ : id))'를 사용하는 경우에만 작동하며 이는 실제로 사용하기에 좋지 않습니다. routes.rb에서 모든 라우팅을 정의하여 작동하는 모든 라우트를 알고 있어야합니다. – DanneManne

0

로고 메소드에 매개 변수 [: ingid]가 표시되지만 동작 링크에서 구분 기호를 지정 했습니까 ?? 이이 내가 그것을했을 어떻게 아마도

관련 문제