"Formular senden", um das UPDATE auszuführen Aktion innerhalb des index
Ich versuche zu schaffen, eine Funktion, die ermöglicht Benutzern das Bearbeiten von Client-Eintrag direkt von der index-Seite. Wenn der Benutzer klickt auf 'Edit', eine teilweise gerendert wird, ersetzt die Elemente mit der input-text-Felder. Aber wenn der "Update client" - Taste gedrückt wird, bekomme ich die Fehlermeldung:
"No route matches [POST] "/clients/27"
Ich bin in der Lage, erstellen neue Kunden und zerstören Kunden direkt aus dem index... was mache ich falsch mit der update-Aktion?
Die teilweise:
<tr id="test">
<%= form_for Client.find(27), :method => :PUT do |f| %>
<td class="input">
<%= f.text_field :name, :value => "Test" %>
</td>
<td class="input">
<%= f.text_field :company %>
</td>
<td class="input">
<%= f.text_field :email %>
</td>
<td class="grayedOut"></td>
<td class="actions">
<%= f.submit "Confirm edit" %>
</td>
<% end %>
</tr>
Routen.rb-Datei:
resources :clients do
resources :projects do
resources :items
end
end
- Haben Sie überprüft, auf der config/routes.rb?
- Versuchen
:method => :put
nicht :PUT. - Wenn das nicht funktioniert, können Sie Ihre rake routes?
- Ich habe auch versucht :Methode => :put-und das nicht helfen. Ich bin derzeit auf meinem computer in der Arbeit, damit ich nicht haben Zugang zu "rake routes" aber meine Routen.rb-Datei ist ziemlich standard. Hier ist, wie es aussieht:
resources :clients do resources :projects do resources :items end end
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich es herausgefunden. Aus welchem Grund auch immer, Schachteln, ein Formular innerhalb einer Tabelle scheint zu versauen die form legt. Wenn ich gerendert, die teilweise außerhalb der Tabelle, das Formular war kein problem Absenden des update-Aktion.
Ich bin immer noch verwirrt, WARUM dies geschieht. Meine Lösung für dieses problem ist die Verwendung von divs statt Tabellen.
EDIT: OK, also recherchierte ich dieses Thema ein bisschen mehr und fand heraus, dass die "Formen" sind nicht gültig für Kinder von
<table>
oder<tr>
. Um dieses problem zu beheben, habe ich die<%= form_for %>
tag innerhalb der ersten<td>
, und die<% end %>
tag innerhalb der letzten<td>
. Jetzt funktioniert ' s einwandfrei!!! Hier ist, was meine teilweise jetzt aussieht: