Problem in rails 4.0 mit der Erstellung eines link_to für eine delete-Aktion
Dies ist mein erstes Projekt in Schienen, die zum erstellen einer Tabelle zum speichern der Daten über die Spiele. Ich bin in der Lage, die Anzeige von Daten aus der Tabelle über die Gewinner score, Verlierer Partitur, etc. Allerdings habe ich Probleme mit meiner Tabelle Spalte löschen von Verknüpfungen für jedes Spiel.
Hier mein code in der Spiele-controller für die delete-Methode:
def delete
@game = Game.find(params[:game])
@game.destroy()
redirect_to :action => 'index'
end
Einen Ausschnitt aus meiner Tabelle-code, der enthält die Zeile für die link_to-Befehl
<% @games_items.each do |t| %>
<tr>
<td><%= t.winner.name %></td>
<td><%= t.loser.name %></td>
<td><%= t.challenger.name %></td>
<td><%= t.winner_score %></td>
<td><%= t.loser_score %></td>
<td><%= link_to 'Delete', delete_game_path(id: t.id)%></td>
</tr>
<% end %>
In der Routen-Datei, die ich genannt
resources :games
Welche, meines Wissens, unterstützt das generieren der Basis-routing. Könnte mir jemand helfen, herauszufinden, warum mein link_to nicht funktioniert?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie (das ist empfohlen)
resources
:a) Ihre Aktion zum löschen von Datensätzen sollte den Namen
destroy
.b) Spiel gesucht mit
:id
parameter:c) Ihr link sollte sein:
da der Pfad ist der gleiche wie für die
show
Aktion, die nur thig, die ändert, ist die HTTP-Methode.rake routes
Aufgabe enthält die entsprechenden action-Namen.:delete
Methode zu arbeiten. Egal was ich mache, es Ergebnisse in einget
Anfrage. Irgendwelche Ideen, warum? ` <%= link_to("Löschen!", {:controller=>'Projekte', :action=>'destroy', :id=>Projekt.hashed_id}, {method: :delete} ) %> `Format für die delete-Aufruf:
verwenden
rake routes
erfahren Sie mehr über die verfügbaren Routen, einschließlich der generierten route Helfer, und die controller/action-handling die Anfrage.Ich hatte ähnliches Problem auf Schienen 4.2.1, auch mit der :Methode => :löschen Sie auf link_to es immer noch Wege zu zeigen-Methode.
Aber mit button_to-Methode, wie unten funktioniert!
button_to erstellt ein Formular um den button und der setzt dann auf die delete-Methode ist, indem Sie ein ausgeblendetes Feld mit dem Namen
_method
mit Wertdelete
Schienen verwendet diese Informationen, um die route zu der destroy-Methode im controller.link_to
war nicht die Arbeit mitmethod: :delete
, aber löste es durch hinzufügenjquery_ujs
zu meinem application.js stackoverflow.com/a/23331608/4249632Versuchen
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
vor<%= javascript_include_tag "application" %>
in Ihr layout, und auch löschen,line in Ihrem application.js.
Dies war der Fall für mich. Keine Ahnung, warum es nicht funktionierte mit den original Schienen jquery.js Datei.