2010-12-27 5 views
0

Ich habe mal in Strecken, die im Anschluss an eine neue Aktion zu meinem E-Mail-Controller hinzuzufügen:Wie kann ich einem Controller eine neue Aktion hinzufügen?

map.resources :emails, :member => { :newfwd => :put} 

Das erwartete Ergebnis war, dass newfwd_email_path (: id => 1) würde die folgende URL generieren: E-Mails/1/newfwd

Es tut. Aber ich bekomme einen Fehler, es behandelt '1' als Aktion und 'Newfwd' als ID. Ich möchte, dass "1" als die ID für E-Mails interpretiert wird, auf die sich die newfwd-Aktion bezieht.

Ich bin mir nicht sicher, was ich falsch mache. (Hinweis: Ich verwende Rails 2.3.8)

Antwort

1

Versuchen

link_to newfwd_email_path(1), :method => :put 

:id => 1 so gut wie 1 ist;)

+0

Ich sehe - wie funktioniert die Methode in den Routen nicht funktioniert? Lass mich das ausprobieren .... – Angela

0

Sie müssen keinen Hash an die newfwd_email_path-Methode übergeben. Versuchen

newfwd_email_path(1) 

EDIT: Sie müssen auch verwenden: method =>: setzen, um sicherzustellen, dass das PUT Verb verwendet wird, wenn Anforderung auf dem Server empfangen wird und das Routing in Kraft tritt.

+0

ich se Dank - wissen Sie, warum? scheint, wenn ich es explizit in die Routen lege, sollte es funktionieren ....? – Angela

Verwandte Themen