我刚刚通过设计实现了密码重置功能,但在按照我收到的每封电子邮件的链接并重置密码后,我收到以下错误:
没有路线匹配[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(未知操作)
任何帮助都将受到高度赞赏!
答案 0 :(得分:1)
确保您在用户模型中有D
:
recoverable
如果它对您没有帮助,请告诉我。
答案 1 :(得分:0)
我遇到了同样的问题,找不到任何解决方案。 此错误可能有两个原因
此页面上没有使用rails-ujs(或jquer-ujs)的javascript文件
用户模型中无法恢复
但是在我的情况下,这两个都没问题,并且错误页面后密码已更改,因此我通过在{{1} },如下所示:
routes.rb