2009-08-23 10 views

Respuesta

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

en los comentarios controlador:

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 
+14

También tiene que estar seguro de que tiene un <% = javascript_include_tag: todos los%> o etiqueta similar en su cabecera. De lo contrario, el enlace estará allí pero no respetará el: método =>: eliminar. Solo añadí este comentario porque eso me estaba acabando ahora ... – lacker

+4

Nota rápida: 'javascript_include_tag: all' está privado en Rails> 3.1, el diseño de la aplicación tiene como valor predeterminado' = javascript_include_tag "aplicación" 'que logrará lo mismo – tehfoo

+1

Me encontré con un problema donde mis enlaces AJAX estaban desconectando usuarios. Terminé teniendo que incluir las etiquetas CSRF en el diseño. Más información aquí: http://stackoverflow.com/questions/6434283/rails-3-ajax-delete-links-log-out-current-user#comment7719982_6507424 No está completamente relacionado con esta pregunta real, pero algunas personas pueden toparse con esto inesperadamente – Nick

9

Desde hace algún tiempo, la opción confirm tiene que ser incluido en un hash data, de lo contrario se ignora silenciosamente:

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

veces cuando tiene <span>, <i> o elementos anidados dentro de una etiqueta <a> de esta manera link_to use is diffi culto. Puede inseted usar HTML puro que es fácil de manejar, así:

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

Todavía puede usar ** link_to ** en estos casos al pasar un bloque para definir el nombre del enlace: <% = link_to @blog, method:: delete, class: "btn btn-sm" do%> < i class = "pg-trash"> Eliminar <% end %> –

Cuestiones relacionadas