2009-08-23 5 views

Répondre

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

dans le contrôleur de commentaires:

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

Vous devez également être sûr que vous avez <% = javascript_include_tag: tous%> ou une étiquette similaire dans votre tête. Sinon le lien sera là mais ne respectera pas: method =>: delete. Juste ajouter ce commentaire parce que ça me bousculait tout à l'heure ... – lacker

+4

Note rapide: 'javascript_include_tag: all' est déprimé dans Rails> 3.1, la mise en page de l'application par défaut' 'javascript_include_tag" application "' qui accomplira la même chose – tehfoo

+1

J'ai rencontré un problème où mes liens AJAX déconnectaient les utilisateurs. J'ai fini par devoir inclure les tags CSRF dans la mise en page. Plus d'infos ici: http://stackoverflow.com/questions/6434283/rails-3-ajax-delete-links-log-out-current-user#comment7719982_6507424 Ce n'est pas entièrement lié à cette question, mais certaines personnes peuvent rencontrer ceci de façon inattendue. – Nick

9

Depuis il y a quelque temps, l'option confirm doit être inclus dans un hachage data, sinon il sera ignoré silencieusement:

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

Parfois lorsque vous avez <span>, <i> ou des éléments imbriqués à l'intérieur d'un tag <a> de cette façon, link_to use est diffi culte. Vous pouvez utiliser inseted HTML brut qui est facile à manipuler, comme ceci:

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

Vous pouvez toujours utiliser ** link_to ** dans ces cas en passant un bloc pour définir le nom du lien: <% = link_to @blog, méthode:: delete, classe: "btn btn-sm" do%> < i class = "pg-trash"> Supprimer <% end %> –

Questions connexes