Ich verwende einen Benutzer-Scope-Controller, der von Devise generiert wurde, um zusätzliche Attribute zu übergeben.Devise Issue - Benutzern erlauben, ohne Passwort zu bearbeiten
class Users::RegistrationsController < Devise::RegistrationsController
before_action :sign_up_params, only: [:create]
before_action :account_update_params, only: [:update
protected
def sign_up_params
devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :cpf])
end
def account_update_params
devise_parameter_sanitizer.permit(:account_update, keys: [:first_name, :last_name, :cpf, :birth_date, :phone, :gender])
end
def update_resource(resource, params)
resource.update_without_password(params)
end
end
Die Routen
devise_for :users, controllers: {registrations: 'users/registrations}
Alles bis arbeitete umfassen die update_resource (resource, params) Verfahren zum Controller und entfernen Sie die current_password Feld auf die Ansicht, vorgeschlagen als https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-edit-their-account-without-providing-a-password
Nach dieser Änderung kann ich alle zusätzlichen Felder (first_name, last_name ... etc) außer dem Passwort bearbeiten. Die Passwortänderung bleibt nicht bestehen. Irgendeine Idee?
Rails-Version: 5.0.0.1 Devise Version: 4.2.0
Ich versuchte, dass Charn und nicht funktioniert. =/ – user1301037
Alle Fehler in Ihrem Entwicklungsprotokoll während der Aktualisierung Passwort –
Nein, nachdem ich die Felder password und password_confirmation in der Bearbeitungsansicht bearbeitet habe, werde ich mit der Erfolgsmeldung zum Stamm weitergeleitet, aber das neue Passwort wird nicht übergeben. Das Protokoll zeigt nur - Erledigt 401 Nicht autorisiert in 259ms (ActiveRecord: 1.1ms) – user1301037