设计 - 忘记密码 - 没有路由匹配[GET]" / users / password"

时间:2017-12-27 10:02:14

标签: devise ruby-on-rails-5

我刚刚通过设计实现了密码重置功能,但在按照我收到的每封电子邮件的链接并重置密码后,我收到以下错误:

没有路线匹配[GET]" / users / password" (路由错误)

我会假设路由通过设计工作?

我在routes.rb中的代码如下所示:

  devise_for :users, controllers: {
           sessions: 'users/sessions',
           passwords: 'users/passwords',
           registrations: 'users/registrations'
         }

我没有在控制器下更改任何内容>用户> passwords_controller.rb但如果看到它有帮助,它看起来像这样:

class Users::PasswordsController < Devise::PasswordsController
  # GET /resource/password/new
  # def new
  #   super
  # end

  # POST /resource/password
  # def create
  #   super
  # end

  # GET /resource/password/edit?reset_password_token=abcdef
  # def edit
  #   super
  # end

  # PUT /resource/password
  # def update
  #   super
  # end

  # protected

  # def after_resetting_password_path_for(resource)
  #   super(resource)
  # end

  # The path used after sending reset password instructions
  # def after_sending_reset_password_instructions_path_for(resource_name)
  #   super(resource_name)
  # end
end

我错过了什么或者我做错了什么?

当我添加&#34;获取用户/密码&#39;&#34;到routes.rb,我收到错误:

动作&#39;密码&#39;找不到UsersController(未知操作)

任何帮助都将受到高度赞赏!

2 个答案:

答案 0 :(得分:1)

确保您在用户模型中有D

recoverable

如果它对您没有帮助,请告诉我。

答案 1 :(得分:0)

我遇到了同样的问题,找不到任何解决方案。 此错误可能有两个原因

  1. 此页面上没有使用rails-ujs(或jquer-ujs)的javascript文件

  2. 用户模型中无法恢复

但是在我的情况下,这两个都没问题,并且错误页面后密码已更改,因此我通过在{{1} },如下所示:

routes.rb