Ruby on rails 密码重置到达控制器但不带装置的方法
我正在使用一个设计范围来重置密码路由,它击中了控制器,但不是控制器内的实际方法。令人难以置信。。。感谢您的帮助Ruby on rails 密码重置到达控制器但不带装置的方法,ruby-on-rails,ruby,session,devise,passwords,Ruby On Rails,Ruby,Session,Devise,Passwords,我正在使用一个设计范围来重置密码路由,它击中了控制器,但不是控制器内的实际方法。令人难以置信。。。感谢您的帮助 devise_scope :dashboard_users do post 'forgot_password', to: 'sessions#forgot_password' put 'reset_password', to: 'sessions#reset_password' end 这是我的routes.rb,这是我的会话\u控制器 class Api::Dashboar
devise_scope :dashboard_users do
post 'forgot_password', to: 'sessions#forgot_password'
put 'reset_password', to: 'sessions#reset_password'
end
这是我的routes.rb,这是我的会话\u控制器
class Api::Dashboard::V1::SessionsController < Devise::SessionsController
p "hello"
def forgot_password
...
end
end
我不知道你问题的确切答案,但我有一些想法。首先,
p“hello”
在文件加载时执行,而不是在请求时执行。这可能会让人困惑,因为Rails会根据请求自动重新加载控制器,并打印“hello”消息。您可以在IRB控制台中对此进行测试:
class Test
p "hello"
end
其次,我将查看您的rake路由
输出。您可能将请求发送到错误的位置。我的直觉是,您需要将路由的设置调整为
,例如:
post 'forgot_password', to: 'api/dashboard/v1/sessions#forgot_password'
put 'reset_password', to: 'api/dashboard/v1/sessions#reset_password'
该更改将把请求指向正确命名的控制器。以前的路由可能已将请求发送到您或Deave在全局命名空间上定义的其他会话控制器。此外,请查看Deave wiki页面中的这些帖子:
好消息。它嵌套在正确的名称空间中。对不起,我应该把它贴出来的。我将添加收到的错误
post 'forgot_password', to: 'api/dashboard/v1/sessions#forgot_password'
put 'reset_password', to: 'api/dashboard/v1/sessions#reset_password'