So let's say I have Posts and Comments and the url for show is /posts/1/comments/1
. I want to create a link to delete that comment in the comments controller destroy method. How do I do that?
51
votes
3 Answers
109
votes
<%= link_to 'Destroy', post_comment_path(@post, comment),
data: {:confirm => 'Are you sure?'}, :method => :delete %>
in comments controller:
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
10
votes
1
votes
Sometimes when you have <span>
, <i>
or nested elements inside of a <a>
tag this way link_to use is difficult. You can inseted use raw HTML which is easy to handle, like so:
<a class="btn btn-sm" href="/blogs/<%[email protected]%>" data-method="delete">
<i class="pg-trash"></i><span class="bold">Delete</span>
</a>