Comment faire pour Supprimer/Désactiver le Signe De Concevoir
Je suis en train de supprimer/désactiver le "mode/sign_up" chemin d'accès de Concevoir. Je fais cela parce que je ne veux pas aléatoire de personnes d'accéder à l'application. Je l'ai en partie de travail par adjonction, dans les itinéraires.rb
Rails.application.routes.draw do
devise_scope :user do
get "/sign_in" => "devise/sessions#new" # custom path to login/sign_in
get "/sign_up" => "devise/registrations#new", as: "new_user_registration" # custom path to sign_up/registration
end
...
devise_for :users, :skip => :registration
end
Toutefois, cela casse <%= link_to "Profile", edit_user_registration_path, class: "btn btn-info btn-flat" %>
qui je veux garder de sorte que les utilisateurs peuvent mettre à jour leur profil.
Je sais que c'est à cause de la devise_for :users, :skip => :registration
Est-il une solution pour ce problème?
De course
Concevoir (4.2.0, 4.1.1, 4.1.0)
Rails 4.2.5
ruby 2.3.0p0 (2015-12-25 révision 53290) [x86_64-linux]
- Vous pouvez utiliser
skip: :registerable
et d'ajouter que les itinéraires que vous voulez. - si j'ajoute
skip: :registerable
, il activerausers/sign_up
. Comment puis-je empêcher que cela se produise? - Le dispositif wiki ici est très utile pour toutes sortes de choses (je l'ai utilisé pour créer mon site web pour seulement permettent à un utilisateur)
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple est juste de retirer ":enregistrables" concevoir un module de la liste par défaut défini dans votre Modèle (le nom de la classe utilisée pour l'application de l'utilisateurs, généralement Utilisateur).
De sorte que vous aurez de cette façon:
edit_user_registration_path
, empêcher les utilisateurs d'être en mesure de mettre à jour les détails de leur compte.unauthenticated: "You need to sign in or sign up before continuing."
Solution pour enlever sign_up chemin de Concevoir
Entrez les informations suivantes au début de
routes.rb
...Après la déclaration ci-dessus, ajouter ce qui suit ci-dessous dans
routes.rb
Cela permettra de supprimer/désactiver le
user/sign_up
chemin pour Concevoir sans casseredit_user_registration_path
Redémarrer votre serveur rails et cela devrait fonctionner.
edit_user_registration_path
a commencé à jeterNoMethodError in Users::RegistrationsController#edit - undefined method 'validatable?' for nil:NilClass
. Je l'ai portée les vues et les contrôleurs pour accueillir plusieurs définir des modèles. Des idées?Depuis comme est juste un alias pour devise_scope, vous pouvez mettre tout cela à seulement un pâté de maisons.
J'ai juste eu le même problème. Ma solution est un mélange de ces réponses:
Premier Commentaire/Supprimer le
:registerable
suruser.rb
class User < ActiveRecord::Base
devise :database_authenticatable, #:registerable,
:recoverable, :rememberable, :trackable, :validatable
end
Deuxième de supprimer l'enregistrement de chemins de concevoir dans
routes.rb
devise_for :users, :skip => [:registrations] , controllers: {
sessions: 'users/sessions'
}
Maintenant concevoir ignorer tous les liens d'inscription à partir de leur point de vue et aussi, vous n'avez plus l'inscription des chemins sur vos itinéraires.
Code ci-dessous semblent faire l'affaire pour moi: