2012-09-18 8 views
17

ich dieses Stück Code haben:"Keine Route entspricht [POST]", wenn link_to Wechsel button_to

<%= link_to "New User", new_user_path, :class => "button" %><br /> 

der gut arbeitet, aber wenn ich es ändern,

<%= button_to "New User", new_user_path, :class => "button" %><br /> 

ich dieser Fehler

Keine Route treffer [POST] "/ Benutzer/new"

Jede Hilfe wird geschätzt.

Antwort

29

Jesus Rodriguez recht POST und GET, aber wenn Sie wirklich die Taste benötigen, können Sie einfach überschreiben Die Standardmethode lautet:

+0

funktionieren gut! Danke Kumpel :) –

19

Die "link_to" sucht nach /users/new mit GET.

Die "button_to" sucht nach /users/newPOST

Wenn Sie die Routen für einen Controller zu erstellen:

resources :user 

standardmäßig//users neue ist ein GET und nicht POST so, die zweite Zeile findet keine Route.

Wenn Sie daran denken, diese Aktion auf POST zu ändern, denke ich, dass Sie es vergessen sollten.

3

Anstatt button_to zu zwingen, eine nicht standardmäßige Methode zu verwenden, können Sie auch eine Klasse an link_to senden.

<%= link_to "New User", new_user_path, :class => "button" %> 
+0

Um hinzuzufügen, können Sie Klassen hinzufügen, um es wie eine Schaltfläche "aussehen" (wie die Antwort oben zeigt). In meinem Fall benutze ich Bootstrap und habe folgendes gemacht: '<% = link_to" New User ", neuer_Benutzer_Pfad,: class =>" btn btn-default "%>' –

Verwandte Themen