2009-08-23 81 views

回答

98
<%= link_to 'Destroy', post_comment_path(@post, comment), 
      data: {:confirm => 'Are you sure?'}, :method => :delete %> 
在評論控制器

def destroy 
    @post = Post.find(params[:post_id]) 
    @comment = Comment.find(params[:id]) 
    @comment.destroy 

    respond_to do |format| 
     format.html { redirect_to post_comments_path(@post) } 
     format.xml { head :ok } 
    end 
    end 
+14

您還必須確定您的標頭中包含<%= javascript_include_tag:all%>或類似標記。否則,鏈接將會在那裏,但不會遵守:method =>:delete。只需添加這條評論,因爲這正在困擾着我...... – lacker 2011-05-23 23:12:01

+4

快速注意:'javascript_include_tag:all'在Rails> 3.1中被隱藏,應用程序佈局默認使用'= javascript_include_tag「應用程序」'這將完成同樣的事情 – tehfoo 2013-04-11 16:28:00

+1

我遇到了一個問題,我的AJAX鏈接將用戶註銷。我最終不得不在佈局中包含CSRF標籤。更多信息在這裏:http://stackoverflow.com/questions/6434283/rails-3-ajax-delete-links-log-out-current-user#comment7719982_6507424這不完全與這個實際問題有關,但有些人可能會遇到這意外。 – Nick 2013-09-27 14:34:09

9

由於前一段時間,該confirm選項必須包括在data哈希值,否則會被忽略:

<%= link_to 'Destroy', post_comment_path(@post, comment), 
    data: { confirm: 'Are you sure?' }, method: :delete %> 
0

有時當你有<span>,<i>或嵌套在<a>標籤裏面的元素link_to使用diffi崇拜。您可以使用易於處理的原始HTML,如下所示:

<a class="btn btn-sm" href="/blogs/<%[email protected]%>" data-method="delete">    
    <i class="pg-trash"></i><span class="bold">Delete</span> 
</a> 
+0

您仍然可以在這些情況下使用** link_to **,方法是傳遞一個塊以定義鏈接名稱: <%= link_to @blog,方法:: delete,class:「btn btn-sm」do%> < i class =「pg-trash」>刪除 <% end %> – 2016-11-29 20:49:10

相關問題