Как создать ссылку для удаления связанного объекта в Ruby on Rails? - PullRequest
51 голосов
/ 23 августа 2009

Допустим, у меня есть сообщения и комментарии, а URL для показа - /posts/1/comments/1. Я хочу создать ссылку для удаления этого комментария в методе уничтожения контроллера комментариев. Как мне это сделать?

Ответы [ 3 ]

107 голосов
/ 23 августа 2009
<%= 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
9 голосов
/ 14 сентября 2015

Некоторое время назад опция confirm должна была быть включена в хеш data, иначе она будет игнорироваться:

<%= link_to 'Destroy',  post_comment_path(@post, comment),
    data: { confirm: 'Are you sure?' }, method: :delete %>
1 голос
/ 04 октября 2016

Иногда, когда у вас есть <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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...