为密码操作设计路径edit_user_registration_path会将我重定向到根目录 - 如何更改此设置? - Rails 4

时间:2016-06-01 16:07:51

标签: ruby-on-rails ruby-on-rails-4 devise

我不确定如何更新密码的路由工作,我看了几个解决方案,但仍然没有运气。

  

我想做的是:

  • 当用户更新密码时,他们将被重定向到 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
有人可以告诉我自己做错了什么。非常感谢

1 个答案:

答案 0 :(得分:-1)

Devise的密码重置操作假设您忘记了密码而无法登录。因此,您无法将用户重定向到其特定的“信息中心”,因为“current_user”不存在。

如果您希望经过身份验证的用户更改其密码,我建议您为更新用户构建单独的路由,因为他们没有“忘记密码”但只想更改密码。