Ich habe überall gesucht, um dies zu beheben - wenn ein Benutzer eine Registrierung fehlschlägt erstellen mit Devise, aus welchem Grund auch immer sie umgeleitet werden '/ users', anstatt sich auf '/ users/sign_up' und persistierende die Fehler:Rails devise Umleitung auf '/ Benutzer' anstelle von '/ users/sign_up' bei fehlgeschlagener Registrierung
Hier sind meine Routen:
devise_for :users, controllers: {
sessions: 'users/sessions',
confirmations: 'users/confirmations',
registrations: 'users/registrations',
passwords: 'users/passwords',
invitations: 'users/invitations'
}, sign_out_via: [:get, :delete]
und /users/registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController
prepend_before_filter :require_no_authentication, only: [:new, :create]
def new
@body_class = "hold-transition register-page"
build_resource({})
yield resource if block_given?
respond_with resource
end
def create
build_resource(sign_up_params)
resource.save
yield resource if block_given?
if resource.persisted?
if resource.active_for_authentication?
set_flash_message :notice, :signed_up if is_flashing_format?
sign_in(resource_name, resource)
respond_with resource, location: after_sign_up_path_for(resource)
else
set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_flashing_format?
expire_data_after_sign_in!
respond_with resource, location: after_inactive_sign_up_path_for(resource)
end
else
clean_up_passwords resource
render :new
end
end
end
Wenn die Ressource nicht an der Stelle fort, wo es heißt machen: neu Ich habe versucht, die folgenden:
redirect_to new_user_registration_path(resource)
- besteht keine Fehler
render :new
- Routen zu "/ Benutzer aber nicht anhalten Fehler
respond_with resource
- tut gleiche wie: neue
respond_with resource, location: new_user_registration_path(resource)
- wieder wie oben
Also, wenn die Ressource bestehen nicht, wie kann ich es einfach wieder gehen lernen auf dieselbe Seite - '/ users/sign_up' und behalte die Fehler? Ich habe einige sehr hacky Wege gesehen, aber es gibt keine Möglichkeit, dass Devise keine Lösung dafür bietet, anstatt es zu zwingen, zu '/ Benutzern' zu routen. Ich habe auch Lösungen gesehen, die eine Weiterleitung und das Setzen eines Blitzes beinhalten - das ist nichts, was ich tun möchte, sondern lieber die Fehler, die im Formular bestehen bleiben.
Vielen Dank
[Meine Frage] (http://stackoverflow.com/questions/43227666/why-does-devise -redirect-sign-up-error-to-a-different-Seite) ist sehr ähnlich. Kannst du mir bitte helfen? – Wit