Ich verwende devise für die Benutzerauthentifizierung, habe aber nette Modelle für die Anmelde-, Anmelde- usw. Seiten. Ich habe den rails generate devise:views User
Befehl bereits ausgeführt und habe alle Ansichten im Ansichtsordner. Als ich jedoch die Registrierung / new.html.erb durch meine eigene new.html.erb ersetzte, ändert sich nichts und sieht auch nicht anders aus. Es ist, als hätte ich etwas getan.
Jeder weiß, was ich falsch mache oder zumindest, wie man erfolgreiche Ansichten erfolgreich anpasst
PS Ist es wichtig zu beachten, dass ich die Route von Gerät / Registrierung # neu in / Anmeldung geändert habe?
ruby-on-rails
devise
views
Vasseurth
quelle
quelle
Antworten:
Ihre Route
signup
oderdevise/registrations#new
wird die Ansicht rendernviews/devise/registrations/new.html.erb
. Es hört sich so anviews/user/registrations/new.html.erb
, als hätten Sie Änderungen an vorgenommen , was erklären würde, warum Sie die vorgenommenen Änderungen nicht sehen, da sie nicht gerendert werden.Sie müssen entweder eine erstellen
user/registrations_controller.rb
, die sich vonDevise::RegistrationsController
Ihrer/signup
Route aus erstreckt und auf die Sie zeigenuser/registrations#new
, oder Sie können Ihre Änderungen einfach direkt an vornehmenviews/devise/registrations/new.html.erb
Die gleiche Idee gilt für Ihre Login (
devise/sessions
) -Seiten.Hoffe das hilft.
quelle
auf einen Blick antworten.
...anstatt
rails generate devise:views User
verwenden:
rails generate devise:views
Wenn Sie dies bereits getan haben, verschieben Sie die erstellten Ordner
app/views/User
in einen neuen Ordnerapp/views/devise
(oder benennen Sie denUser
Ordner einfach in umdevise
, wenn dies eine Option ist).Diese Ordner sind:
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
Es sind keine weiteren Änderungen erforderlich.
quelle
-v
Option hinzu:rails generate devise:views -v registrations confirmations
users
undadmins
, müssen Sie mit der Antwort unten von @QBDSolutionsObwohl dies eine alte Frage ist, dachte ich, ich würde sie ergänzen, falls jemand darüber stolpert. Ich bin mir nicht sicher, ob dies ein Neuzugang ist, da die Frage ursprünglich gestellt wurde, aber wenn ja, ist dies der einfachere (modernere) Ansatz.
In der Datei
config/initializers/devise.rb
befindet sich der folgende Codeblock:# ==> 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
Durch das Kommentieren
config.scoped_views = false
und Ändern des Werts intrue
wird überprüft, ob die benutzerdefinierte Ansicht vorhanden ist, und wenn ja, wird dies bereitgestellt. Wie es heißt, erhöht es den Aufwand für die Anwendung, aber meiner Erfahrung nach ist dies bisher minimal.quelle
Für alle, die noch ein Problem damit haben, liegt das Problem in der Aufforderung an
rails generate devise:views User
. Es sollterails generate devise:views
zum Abrufen aktueller Ansichten von der Devise Rails Engine dienen. Dadurch werden korrekte Ansichten generiert, die mit den Standardrouten funktionieren.quelle
rails generate devise:views User
dass ein OrdnerUsers
in der Ansicht und auch ein Controller-Ordner generiert wurdenusers
. Wenn ich den Namen geändertdevise
habe, funktioniert es nicht?Nach dem Generieren Ihrer benutzerdefinierten Ansichten, z
rails generate devise:views User
Schalte ein
scoped_views
inconfig/initializer/devise.rb
view config.scoped_views = true
Und du bist fertig.
quelle
Verwenden von
rails g devise:views User
können Sie anpassen, wenn Sie mehr als eine Rolle haben.Der richtige Weg, dies zu tun, ist in dein
devise.rb
In zu gehenconfig/initializer/
Ordner zu gehenund auskommentieren und einstellen
config.scoped_views = true
.Jetzt können Sie die Ansicht erb-Dateien problemlos bearbeiten
quelle
Ich hatte das gleiche Problem, bis ich zurückging und die Dokumentation des Geräts las :)
Danach
rails generate devise:views
stellen Sie sicher, dass Sie ininitializers/devise.rb
und setzenconfig.scoped_views = true
. Dies wird in der Gerätedokumentation unter https://github.com/plataformatec/devise sowie in dendevise.rb
Kommentaren erläutert .Nachdem ich dies getan hatte, tauchten meine eigenen Ansichten
views/users
anstelle der im Edelstein auf.quelle
Zum späteren Nachschlagen können Sie den Ordner einfach von devise => user umbenennen und umgekehrt. Rails finden eine Route.
quelle
rails g devise:views User
außer dass der neue Ordner neben dem geplanten Ordner hinzugefügt wird. Ich glaube nicht, dass es eine sehr gute Angewohnheit ist, Schienen zu erlauben, eine Route zu finden