J'utilise le système pour l'authentification d'utilisateur, mais j'ai de belles maquettes pour les pages d'inscription, de connexion, etc. J'ai déjà fait le Rails generate devise:views User
commande et que toutes les vues se trouvent dans le dossier views, cependant, lorsque j'ai remplacé registration/new.html.erb par mon propre new.html.erb, rien ne change ni ne diffère. C'est comme si j'avais fait quelque chose.
Tout le monde sait ce que je fais de mal ou au moins comment personnaliser avec succès les vues de carte
P.S. Est-il important de noter que j'ai changé le parcours de carte/numéro d'enregistrement # nouveau pour/inscription?
Votre itinéraire signup
ou devise/registrations#new
rendra la vue views/devise/registrations/new.html.erb
. On dirait que vous avez apporté des modifications à views/user/registrations/new.html.erb
, ce qui expliquerait pourquoi vous ne voyez pas les modifications apportées car elles ne sont pas restituées.
Vous devrez soit créer un user/registrations_controller.rb
qui s'étend de Devise::RegistrationsController
et pointez votre /signup
Route vers user/registrations#new
, ou vous pouvez simplement apporter vos modifications directement à views/devise/registrations/new.html.erb
La même idée s’applique à votre login (devise/sessions
) pages.
J'espère que cela t'aides.
en un coup d'oeil répondre.
Rails generate devise:views User
Rails generate devise:views
Si vous l'avez déjà fait, déplacez le dossier de dossiers créé à partir de app/views/User
dans un nouveau dossier app/views/devise
(ou tout simplement renommer le dossier User
en devise
, s’il s’agit d’une option.)
Ces dossiers sont:
app/views/User/confirmations
app/views/User/mailer
app/views/User/passwords
app/views/User/registrations
app/views/User/sessions
app/views/User/shared
app/views/User/unlocks
Aucun autre changement n'est nécessaire.
bien que ce soit une vieille question, je pensais y ajouter au cas où quelqu'un trébucherait dessus. Je ne sais pas s'il s'agit d'un nouvel ajout depuis la question a été posée à l'origine, mais si oui, l'approche la plus simple (la plus moderne) est la suivante.
dans le fichier config/initializers/devise.rb
_ il y a le bloc de code suivant:
# ==> Scopes configuration
# Turn scoped views on. Before rendering "sessions/new", it will first check for
# "users/sessions/new". It's turned off by default because it's slower if you
# are using only default views.
# config.scoped_views = false
en décommentant config.scoped_views = false
et en changeant sa valeur en true
, le système vérifiera automatiquement si la vue personnalisée existe et si oui, la servira. Comme il est dit, cela ajoute des frais généraux à l'application, mais d'après mon expérience, ceci est minime.
Pour ceux qui ont encore un problème avec cela, le problème réside dans l'appel à Rails generate devise:views User
. CA devrait etre Rails generate devise:views
pour récupérer les vues actuelles à partir du moteur Devise Rails. Cela générera les vues appropriées qui fonctionneront avec les routes par défaut.
Après avoir généré vos vues personnalisées, par exemple
Rails generate devise:views User
Allumer scoped_views
dans config/initializer/devise.rb
view config.scoped_views = true
Et vous avez terminé.
L'utilisation de Rails g devise:views User
Vous permet de personnaliser lorsque vous avez plusieurs rôles.
la bonne façon de faire ceci est d'aller dans votre dossier devise.rb
dans config/initializer/
et décommenter et régler config.scoped_views = true
.
maintenant vous pouvez éditer les fichiers de vue erb sans aucun problème
J'ai eu le même problème jusqu'à ce que je retourne lire la documentation sur le système :)
Après Rails generate devise:views
_ assurez-vous d'entrer dans initializers/devise.rb
Et mettre config.scoped_views = true
. Ceci est expliqué dans la documentation sur la conception à l’adresse https://github.com/plataformatec/devise ainsi que dans le devise.rb
commentaires.
Après avoir fait cela, mes propres opinions dans views/users
a commencé à apparaître au lieu de ceux de la gemme.
Pour référence ultérieure, vous pouvez simplement renommer le dossier de système => utilisateur et inversement et Rails trouvera un itinéraire.