2009-08-23 6 views

Odpowiedz

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

w komentarzach regulatora:

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

Trzeba także mieć pewność, że masz <% = javascript_include_tag: all%> lub podobny tag w nagłówku. W przeciwnym razie link będzie tam, ale nie będzie przestrzegał: method =>: delete. Po prostu dodałem ten komentarz, ponieważ to mnie teraz zbudziło .... – lacker

+4

Szybka uwaga: 'javascript_include_tag: all' jest zdegradowany w Railsach> 3.1, układ aplikacji jest domyślnie ustawiony na' 'javascript_include_tag" application "', który wykona to samo – tehfoo

+1

Wystąpił problem, w którym moje łącza AJAX rejestrowały użytkowników. Skończyło się na tym, że muszę uwzględnić tagi CSRF w układzie. Więcej informacji tutaj: http://stackoverflow.com/questions/6434283/rails-3-ajax-delete-links-log-out-current-user#comment7719982_6507424 Nie jest to całkowicie związane z tym faktycznym pytaniem, ale niektóre osoby mogą napotkać to niespodziewanie. – Nick

9

Ponieważ jakiś czas temu, opcja confirm musi być zawarte w data hash, w przeciwnym razie będzie to zignorowane:

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

Czasami gdy masz <span>, <i> lub elementy zagnieżdżone wewnątrz znacznika <a> w ten sposób, że link_to use jest diffi kult. Można inseted użyć surowego HTML, który jest łatwy w obsłudze, tak jak poniżej:

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

Możesz nadal używać ** link_to ** w tych przypadkach, przekazując blok, aby zdefiniować nazwę linku: <% = link_to @blog, metoda:: delete, klasa: "btn btn-sm" do%> < i class = "pg-trash"> Usuń <% end %> –