Wie füge ich eine benutzerdefinierte RESTful-Route zu einer Rails-App hinzu?
Bin ich beim Lesen auf diese zwei Seiten
Den Rails Guides Seite zeigt
map.resources :photos, :new => { :upload => :post }
Und der entsprechenden URL
/photos/upload
Diese sieht wunderbar aus.
Meine routes.rb
zeigt diese
map.resources :users, :new => { :signup => :get, :register => :post }
Wenn ich das mache: [~/my_app]$ rake routes
Sehe ich zwei neue Routen Hinzugefügt,
signup_new_user GET /users/new/signup(.:format)
register_new_user POST /users/new/register(.:format)
Hinweis die Einbeziehung von /new
! Ich nicht wollen. Ich möchte nur /users/signup
und /users/register
(wie beschrieben in der Rails-Routing-Handbuch).
Hilfe?
InformationsquelleAutor der Frage maček | 2010-04-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie setzen einen controller als resource, die folgenden Aktionen werden automatisch Hinzugefügt:
Diese Aktionen können sein kategorisiert in zwei Gruppen:
:member
AktionenDie URL für die member Aktion die id der Ziel-Ressource. E. g:
Können Sie denken
:member
Aktion als Instanz-Methode für eine Klasse. Es bezieht sich immer auf eine existierende Ressource.Standard Mitglied Aktionen:
show
edit
update
destroy
:collection
AktionenDie URL für die
:collection
Aktion nicht enthalten die id der Ziel-Ressource. E. g:Können Sie denken
:collection
Aktion als statische Methode in einer Klasse.Standard-Kollektion Aktionen:
index
new
create
In Ihrem Fall müssen Sie zwei neue Aktionen für die Registrierung. Diese Tätigkeiten gehören : - Sammlung geben( da Sie nicht die id des Benutzers, während die Einreichung dieser Aktionen). Ihre route kann wie folgt sein:
Die URL für die Aktionen sind wie folgt:
Wenn Sie entfernen möchten, ein standard-Aktion generiert, die von Rails verwenden :außer/:nur die Optionen:
Bearbeiten 1
Ich in der Regel behandeln die
confirmation
Aktion als:member
Aktion. In diesem Fallparams[id]
enthält die Bestätigungs-code.Route-Konfiguration:
URL
Controller
InformationsquelleAutor der Antwort Harish Shetty
Diese getroffen werden können, ist nur ein syntax-etwas, gut zu wissen sein kann.
Syntax 1:
Rake Route-Ausgang gehören
rs"}
Syntax 2:
Wenn Sie nur eine route
InformationsquelleAutor der Antwort prashantsunkari
Wenn ich verstehen deine Frage richtig, Sie wollen einfach nur benennen Sie die urls der
new
undcreate
Aktionen.Dies würde erfolgen, etwa so:
Wenn Sie würde wirklich gerne hinzufügen neue Routen mit entsprechenden controller-Aktionen, dann Damiens Antwort ist der Weg zu gehen.
InformationsquelleAutor der Antwort mikezter
Den
new
option ermöglicht Ihnen das erstellen von neuen Strecken für die Erstellung von neuen Objekten. Das ist, warum Sie beginnen mit diesen Begriff.Was du suchst ist die
:collection
option.Was die
/users/signup
und/users/register
urls.InformationsquelleAutor der Antwort Damien MATHIEU