복붙노트

[RUBY-ON-RAILS] 삭제 링크 레일 3보기 대신에 "삭제"의 "가져 오기"전송

RUBY-ON-RAILS

삭제 링크 레일 3보기 대신에 "삭제"의 "가져 오기"전송

나는 레일 (3)을 사용하여 데이터베이스 게시물의 목록을 출력하는 페이지가 가지고 있어요. 내가 링크에서 게시물을 삭제할 수 있도록하고 싶습니다.

작품 아래의 2 예,하지만 첫 번째는하지 않습니다. 누구를 알고 왜 첫번째 의지하지 사용할 수 있습니까? 내보기에는 다음이 포함됩니다

# this link sends a "GET" request which asks for the #show function  
<%= link_to 'Delete', post, :method => :delete %>

# this link sends the proper "DELETE" request which asks for the #destroy function
<%= button_to 'Delete', post, :method => :delete %>

내 루트 파일은 다음을 포함합니다

resources :posts 

해결법

  1. ==============================

    1.확인 레이아웃에 섹션은 다음을 포함합니다 :

    확인 레이아웃에 섹션은 다음을 포함합니다 :

    <%= javascript_include_tag :defaults %>
    <%= csrf_meta_tag %>
    

    레일 3에서 삭제 요청은 요청이 제대로 전송되는지 확인하기 위해 자바 스크립트의 도움으로 처리되고있다. 당신은 CSRF 메타 태그와 필요한 자바 스크립트 코드가없는 경우, 삭제 링크가 작동하지 않습니다. : 기본적으로 자바 스크립트 파일은 다음과 같습니다 - prototype.js에, 그리고 application.js - 다른 사람의 사이에서. 후자는 링크 작업을하게 물건을 포함하지만, 프로토 타입 프레임 워크에 의존한다.

    기본 프로토 타입 자바 스크립트 라이브러리를 사용하지 않으려면, 몇 가지 다른 프레임 워크에 대한 application.js의 포트가 있습니다. 당신은 예를 들어, 여기에 jQuery를 하나를 찾을 수 있습니다.

    button_to으로 생성 된 HTML 코드는 그 자체로 필요한 모든 정보가 포함로 버튼은 여전히 ​​관계없이 자바 스크립트의 작동합니다. 링크하지 않는 상태에서 버튼의 작품을보고있는 이유입니다.

  2. ==============================

    2.같은 외모

    같은 외모

    <%= javascript_include_tag :defaults %>
    

    더 이상 지원되지 않습니다

    http://apidock.com/rails/ActionView/Helpers/AssetTagHelper/JavascriptTagHelpers/javascript_include_tag

    대신 사용해야합니다

    <%= javascript_include_tag 'application' %>
    
  3. ==============================

    3.나는 레일 5.2.3에서 같은 문제가 있었이 나를 도왔다 :

    나는 레일 5.2.3에서 같은 문제가 있었이 나를 도왔다 :

    레이아웃 머리 :

    <%= javascript_include_tag "rails-ujs" %>
    

    설정 / 초기화 / 자산

    Rails.application.config.assets.precompile += %w( rails-ujs.js )
    
  4. ==============================

    4.내 경우, 나는 다음을 사용했다.

    내 경우, 나는 다음을 사용했다.

    <%= javascript_include_tag :defaults %>
    <%= csrf_meta_tag %>
    

    또한 단지 기본 프로토 타입 JS 아래 jQuery를 포함하여 jQuery를 사용했다. 즉 갈등의 일종을 일으키는 원인이되었다.

  5. ==============================

    5.파괴 조치는 양식 제출로 수행되어야한다 - http://www.w3.org/2001/tag/doc/whenToUseGet.html#checklist

    파괴 조치는 양식 제출로 수행되어야한다 - http://www.w3.org/2001/tag/doc/whenToUseGet.html#checklist

    당신은 삭제 방법 또는 사용 형태에 적절하게 버튼 스타일을 지정할 수 있습니다.

  6. ==============================

    6.이 작동합니다. 문제는 당신이 경로를 얻을 수 있도록에게 옳은 길을 통과해야한다는 사실이다.

    이 작동합니다. 문제는 당신이 경로를 얻을 수 있도록에게 옳은 길을 통과해야한다는 사실이다.

    <%= link_to 'Delete', post_path(post.id), :method => :delete %>
    
  7. ==============================

    7.레일 5 내 경우에는, 내 레이아웃에 다음과 같은 사용되었다 :

    레일 5 내 경우에는, 내 레이아웃에 다음과 같은 사용되었다 :

    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
    

    이런 식으로:

    ... </title>
      <%= csrf_meta_tags %>
      <%= csp_meta_tag %>
    ...
     <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
     </head>
    
  8. ==============================

    8.이 ... 그것의 간단한 변화를 시도 ..

    이 ... 그것의 간단한 변화를 시도 ..

    당신의 route.rb 파일이 추가

    얻을 '/리스트 / : list_id로 / 의견 / : ID'=> '댓글 # 파괴'

    지금이 변화와의 작업을했다 ..

  9. from https://stackoverflow.com/questions/3774925/delete-link-sends-get-instead-of-delete-in-rails-3-view by cc-by-sa and MIT license