Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 密码重置到达控制器但不带装置的方法_Ruby On Rails_Ruby_Session_Devise_Passwords - Fatal编程技术网

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'