Załóżmy, że mam posty i komentarze, a adres URL wystawy to /posts/1/comments/1
. Chcę utworzyć link do usunięcia tego komentarza w metodzie niszczenia kontrolera komentarzy. Jak mogę to zrobić?Jak utworzyć link do usunięcia powiązanego obiektu w Ruby on Rails?
42
A
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
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 %> –
Powiązane problemy
- 1. Ruby on Rails Case/Switch. Jak dopasować do obiektu?
- 2. Ruby on Rails: jak używać domyślnego obiektu zastępczego w select_tag?
- 3. Konwersja projektu Ruby on Rails do projektu JRuby on Rails
- 4. Ruby on Rails on IIS?
- 5. Ruby vs. Ruby On Rails
- 6. Docsplit Ruby on Rails
- 7. Przełącznik Ruby on Rails
- 8. Narzędzia raportowania Ruby on Rails?
- 9. Ruby on Rails link_to obrazu
- 10. Ruby on Rails: menu rozwijane
- 11. Jak włączyć kompresję w Ruby on Rails?
- 12. Jak łatać małpy w Ruby on Rails?
- 13. Ruby on Rails kontra Python
- 14. Ruby on Rails javascript_include_tag: domyślnie
- 15. Ruby on Rails: wybierz formularz
- 16. Ograniczanie żądań do Ruby on Rails API
- 17. Ruby on Rails 301 przekierowanie
- 18. Ruby on rails i Node.js
- 19. Ruby on Rails: Wyszukiwanie zaawansowane
- 20. Ruby on Rails before_filter vs initialized ruby
- 21. Ruby on Rails vs. Django
- 22. Zwijanie na Ruby on Rails
- 23. Ruby on Rails wysyłania SMS
- 24. Antypatterns z Ruby on Rails
- 25. Pasek do jednorazowej płatności. - Ruby on Rails
- 26. Zaproszenie do Facebooka z Ruby on Rails
- 27. Stowarzyszenie polimorficzne Ruby on Rails
- 28. Ruby on Rails I18n interpolation
- 29. Monit Ruby on Rails Sidekiq
- 30. Ruby on Rails. Unicode routes
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
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
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