2012-01-22 3 views
1

Rails는 POST에서 양식의 숨김 필드를 사용하여 리소스에 대한 DELETE를 시뮬레이트합니다. 그러나 그것은 레코드를 삭제하기 위해 폼을 사용해야만한다. 그러나 앵커 태그를 통해 행을 삭제하려면 행 끝에 표시된 '삭제'를 클릭하면 어떻게됩니까? 사람들 레코드를 표시하고 행이 다음과 같이 표시됩니다.REST 리소스를 사용하고 양식없이 삭제할 수있는 레일

|| 이름 || 성 ||
|| Foo || 바 ||
|| Baz || 푸 | | 삭제
...

및 삭제 클릭하면 양식/숨김 필드를 사용하지 않고/people/: id/destroy로 라우팅하고 싶습니까?

+0

: map.connect '명/: ID가/파괴', 예를 들어, 당신이 뭔가를 할 수있는 조치를 = > 'destroy' 그러나 나는 map.resource 만 사용하고 싶었습니다. 이미 삭제 된 것을 제외하고는 모두 작동하는 사람들입니다. – HeretoLearn

답변

2

레일 'link_to 방법은 GET, POST, PUTDELETE HTTP 동사를 지원합니다. 컨트롤러 => '사람': 내가 추가 할 수 있습니다 알고

link_to "Delete", person_path(@person), method: :delete, confirm: "Are you sure?" 

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

+0

굉장하고 매력처럼 작동합니다. Rails는 href에 onClick 이벤트를 추가하고 JS를 사용하여 전체 양식을 설정합니다. 좋은! – HeretoLearn

+0

@ Turd 그러나 JS가 꺼진 브라우저에서 어떻게 작동합니까? 링크를 사용할 수 없어야합니까? – Jazz

+0

JS가 활성화되어 있지 않으면이 솔루션이 작동하지 않습니다. 링크는 DELETE 요청을 보낼 수 없습니다. 'method : : delete'를 지정하면 레일즈 -ujs가 감시하는 링크에'data-method' 속성을 추가합니다. [button_to] (http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-button_to)를 사용하고 버튼의 스타일을 지정해야 할 때 j없이 작동하는 솔루션이 필요한 경우 링크처럼 보입니다. –

관련 문제