Wie entferne ich die Devise-Route zur Anmeldung?

Ich bin mit Entwickeln in eine Rails-3-Anwendung, aber in diesem Fall muss ein Benutzer erstellt werden, indem Sie einen vorhandenen Benutzer aus, wer legt fest, welche Berechtigungen er/Sie haben wird.

Weil dieses, ich will:

  • Zu entfernen Sie die route für den Benutzer zu Unterschreiben,.
  • Zu noch ermöglichen Benutzern das Bearbeiten Ihrer profile (ändern der E-Mail-Adresse und Passwort) nach Sie sich angemeldet haben,

Wie kann ich dies tun?

Derzeit bin ich effektiv entfernen diese route, indem Sie den folgenden vor devise_for :users:

match 'users/sign_up' => redirect('/404.html')

Funktioniert, aber ich glaube, es gibt einen besseren Weg, richtig?

Update

Als Benoit Garret sagte, die beste Lösung in meinem Fall ist, überspringen Sie die Erstellung der Registrierungen Routen en masse und erstellen Sie einfach die, die ich eigentlich will.

Zu tun, dass ich das erste lief rake routesdann verwendet die Ausgabe, neu zu erstellen die, die ich wollte. Das Ergebnis war dieses:

devise_for :users, :skip => [:registrations] 
as :user do
  get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'
  put 'users' => 'devise/registrations#update', :as => 'user_registration'
end

Beachten Sie, dass:

  • Ich habe noch :registerable in meinem User Modell
  • devise/registrations für die Aktualisierung E-Mail und Passwort
  • Aktualisierung anderer Benutzer-Attribute, Berechtigungen, etc - werden von einem anderen controller

Eigentliche Antwort:

Entfernen Sie die route für den Standard Auszuarbeiten, der Wege; d.h.:

devise_for :users, path_names: {
  sign_up: ''
}

InformationsquelleAutor der Frage Nathan Long | 2011-07-18

Schreibe einen Kommentar