Ich versuche, den "user / sign_up" Pfad von Devise zu entfernen / deaktivieren. Ich mache das, weil ich nicht will, dass zufällige Leute Zugriff auf die Anwendung bekommen. Ich habe es teilweise funktionierend, indem ich Folgendes hinzufüge routes.rb
%Vor% Dies bricht jedoch <%= link_to "Profile", edit_user_registration_path, class: "btn btn-info btn-flat" %>
, die ich behalten möchte, damit Benutzer ihr Profil aktualisieren können.
Ich weiß, dass es wegen devise_for :users, :skip => :registration
Gibt es eine Lösung für dieses Problem?
Ausführen
Devise (4.2.0, 4.1.1, 4.1.0)
Schienen 4.2.5
ruby 2.3.0p0 (2015-12-25 Revision 53290) [x86_64-linux]
Lösung zum Entfernen des sign_up-Pfads von Devise
Geben Sie am Anfang von routes.rb
... Fügen Sie nach der obigen Aussage das Folgende in routes.rb
Dadurch wird der Pfad user/sign_up
für Devise entfernt / deaktiviert, ohne dass edit_user_registration_path
Starten Sie Ihren Rails Server neu und es sollte funktionieren.
Seit als ist nur ein Alias Für devise_scope können Sie alles in nur einem Block ablegen.
%Vor%Ich hatte gerade das gleiche Problem. Meine Lösung ist eine Mischung aus diesen Antworten:
Erster Kommentar / Entfernen Sie die :registerable
auf user.rb
class User < ActiveRecord::Base
devise :database_authenticatable, #:registerable,
:recoverable, :rememberable, :trackable, :validatable
end
Entfernen Sie zweitens die Registrierungspfade von devise in routes.rb
devise_for :users, :skip => [:registrations] , controllers: {
sessions: 'users/sessions'
}
Jetzt werden alle Registrierungslinks aus ihrer Ansicht übersprungen und Sie haben nicht mehr die Registrierungspfade auf Ihren Routen.
Tags und Links ruby-on-rails devise