Допустим, у меня есть Posts и Comments, и url для show - /posts/1/comments/1
. Я хочу создать ссылку для удаления этого комментария в методе destroy контроллера комментариев. Как мне это сделать?
<%= 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
С некоторых пор опция confirm
должна быть включена в хэш data
, иначе она будет молча проигнорирована:
<%= link_to 'Destroy', post_comment_path(@post, comment),
data: { confirm: 'Are you sure?' }, method: :delete %>
Иногда, когда у вас есть <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>