Devise, bevor die Filter verhindert, dass auf „new_user_registration_path“ zugreifen, wenn Benutzer angemeldet-in

StackOverflow https://stackoverflow.com/questions/4213006

Frage

Ich bin mit meiner Devise in Rails-Anwendung. Mein Benutzer Modell ist registrierbar, was bedeutet, dass jemand auf gehen kann / users / sign_up und erstellen Sie ein neues Konto.

Ist es möglich, diesen Weg zu schützen, so dass nur signed_in Benutzer neue Konten erstellen?

War es hilfreich?

Lösung

Erstellen Sie einen Regler mit Klasse Devise :: RegistrationsController heriting. Nachdem Sie Ihre Filter hinzufügen können. Sie müssen nur diesen Controller wie Registrierungscontroller definieren

class RegistrationsController < Devise::RegistrationsController
  before_filter :authenticate_user!
end

In Ihrem routes.rb

devise_for :users, :controllers => { :registrations => 'registrations'}

Andere Tipps

Es hat für mich nicht funktionierte, weil authenticate_user! nicht genannt zu werden.

ich es auf diese Weise festgelegt:

class RegistrationsController < Devise::RegistrationsController
    before_filter :prevent_sign_up

private
    def prevent_sign_up
        redirect_to new_user_session_path and return
    end
end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top