我不确定如何更新密码的路由工作,我看了几个解决方案,但仍然没有运气。
我想做的是:
dashboard_user_path
而不是root_path
- 但不管我做了什么
用户正被重定向到root_path
dashboard_user_path
观看档案
<%= link_to "change password", edit_user_registration_path(current_user) %>
application_controller.rb文件
除了after_resetting_password_path_for(resources)
之外,我的所有设计方法都有效,我也试过after_update_path_for(resources)
但仍然没有运气
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def after_resetting_password_path_for(resources)
dashboard_user_path(current_user)
end
def after_sign_up_path_for(resources)
dashboard_user_path(current_user)
end
def after_sign_in_path_for(resources)
dashboard_user_path(current_user)
end
def after_sign_out_path_for(resources)
feedback_path
end
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:email) }
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:firstname, :lastname, :email, :password) }
end
end
有人可以告诉我自己做错了什么。非常感谢
答案 0 :(得分:-1)
Devise的密码重置操作假设您忘记了密码而无法登录。因此,您无法将用户重定向到其特定的“信息中心”,因为“current_user”不存在。
如果您希望经过身份验证的用户更改其密码,我建议您为更新用户构建单独的路由,因为他们没有“忘记密码”但只想更改密码。