设计edit_account_password操作会将我重定向到根目录

sni*_*tko 5 ruby-on-rails devise

这是我的设计路线:

devise_for :accounts, :path_names => { :sign_up => "new" } do
  get "sign_in",           :to => "devise/sessions#new"
  get "sign_out",          :to => "devise/sessions#destroy"
  get "/change_password",  :to => "devise/passwords#edit"
end
Run Code Online (Sandbox Code Playgroud)

而我的输出rake routes:

       account_password POST   /accounts/password(.:format)                {:controller=>"devise/passwords", :action=>"create"}
   new_account_password GET    /accounts/password/new(.:format)            {:controller=>"devise/passwords", :action=>"new"}
  edit_account_password GET    /accounts/password/edit(.:format)           {:controller=>"devise/passwords", :action=>"edit"}
                        PUT    /accounts/password(.:format)                {:controller=>"devise/passwords", :action=>"update"}
Run Code Online (Sandbox Code Playgroud)

所以change_password路由不到位,/change_password只是将我重定向到root_path.请帮助我理解为什么或者我会伤害自己.谢谢.

Mik*_*kin 11

好的,我想出了问题.编辑密码来自Recoverable模块,它的目的是帮助用户忘记密码,而不是让签名用户更改他/她的密码.您可以使用注册/编辑.