2009-08-23 4 views

Antwort

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

in den Kommentaren 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 
+14

Sie müssen auch sicher sein, dass Sie ein <% = javascript_include_tag: alle%> oder ähnlichen Tag in Ihrem Header. Ansonsten wird der Link dort sein, aber nicht respektieren die: method =>: löschen. Fügen Sie einfach diesen Kommentar, weil das war gerade stumping mich. – lacker

+4

Kurzinfo: 'javascript_include_tag: alle 'ist in Rails> 3.1, das Anwendungslayout Standardeinstellungen mit' = javascript_include_tag "Anwendung", die das gleiche erreichen – tehfoo

+1

Ich stieß auf ein Problem, bei dem meine AJAX-Links Benutzer protokollierten. Am Ende musste ich die CSRF-Tags in das Layout einfügen. Mehr Infos hier: http://stackoverflow.com/questions/6434283/rails-3-ajax-delete-links-log-out-current-user#comment7719982_6507424 Es ist nicht vollständig mit dieser tatsächlichen Frage verbunden, aber einige Leute können hineinlaufen das unerwartet. – Nick

9

Seit vor einiger Zeit hat die confirm Option in einem data Hash enthalten sein, sonst wird es stillschweigend ignoriert:

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

Manchmal Wenn Sie haben <span>, <i> oder verschachtelte Elemente innerhalb eines <a> Tags auf diese Weise link_to verwenden ist diffi Kult. Sie können inseted raw HTML verwenden, die wie so einfach zu handhaben ist:

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

In diesen Fällen können Sie ** link_to ** verwenden, indem Sie einen Block übergeben, um den Linknamen zu definieren: <% = link_to @blog, Methode:: löschen, Klasse: "btn btn-sm" do%> < i class = "pg-trash"> Löschen <% end %> –

Verwandte Themen