web-dev-qa-db-ja.com

Ruby on Railsで関連オブジェクトの削除リンクを作成する方法は?

投稿とコメントがあり、ショーのURLが/posts/1/comments/1。コメントコントローラーのdestroyメソッドでそのコメントを削除するリンクを作成します。それ、どうやったら出来るの?

51
Artilheiro
<%= 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
107
Ian Bishop

しばらく前から、confirmオプションをdataハッシュに含める必要があります。そうしないと、黙って無視されます。

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

<span><i>、または<a>タグ内にネストされた要素がある場合、この方法でlink_toを使用するのは困難です。次のように、簡単に処理できる生のHTMLを挿入することができます。

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