如何在Ruby on Rails中为相关对象创建删除链接?

时间:2009-08-23 00:52:19

标签: ruby-on-rails ruby hyperlink

所以我想说我有帖子和评论,节目的网址是/posts/1/comments/1。我想在comments controller destroy方法中创建一个删除该注释的链接。我该怎么做?

3 个答案:

答案 0 :(得分:105)

<%= 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

答案 1 :(得分:9)

从前段时间开始,confirm选项必须包含在data哈希中,否则将被忽略:

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

答案 2 :(得分:1)

有时当<span><i>或嵌套元素位于<a>标记内时,这种方式很难使用link_to。你可以插入使用易于处理的原始HTML,如下所示:

<a class="btn btn-sm" href="/blogs/<%=@blog.id%>" data-method="delete">             
  <i class="pg-trash"></i><span class="bold">Delete</span>
</a>