2009-08-23 58 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

相关问题