저는이 문제를 해결하기 위해 파고 들었습니다. 해결책을 찾았습니다. 내 모델 (user.rb)에서
내가 다음 코드 조각에 :validatable
추가 : 마지막
def update_resource(resource, params)
if !params[:password].blank?
resource.password = params[:password]
resource.password_confirmation = params[:password_confirmation]
end
resource.update_without_password(params)
end
그리고에서 : 내 등록 컨트롤러에서 다음
devise :omniauthable, :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable,
:confirmable, :trackable, reset_password_keys:[:email, :company_id],
request_keys: [:host, :params], omniauth_providers: [:auth0]
, 나는 다음과 같은 추가 내 응용 프로그램 컨트롤러 인 경우
:password_confirmation
을 다음 스 니펫에 추가했습니다.
devise_parameter_sanitizer.permit(:account_update) do |u|
u.permit(:first_name, :last_name, :email, :password, :password_confirmation, :phone_number, :receive_emails,
location_attributes: [:id, :street, :city, :state, :zip, :country])
end
이 조합을 사용하면 양식을 제출하면 덮어 쓰는 update_resource
블록에 들어갑니다. resource.password
과 password_confirmation
이 동일한 지 확인합니다. 그 중이 빠졌으므로 더 이상 변경 사항을 저장하기 위해 암호를 입력 할 필요가 없습니다.
도움을 주셔서 감사합니다. 결과적으로 나에게 적합하지 않습니다. 나는 내가 발견 한 해결책을 게시하는 것을 끝내었다. –