我在我的rails项目和我的/ users / edit页面中使用devise gem version 4.1.1我希望在用户更改密码而不是重定向到root_path后重定向到同一页面。我用Google搜索了这个链接devise github wiki
我确实做了相应的更改,我的注册控制器如下
class RegistrationsController < Devise::RegistrationsController
protected
def after_update_path_for(resource)
edit_user_registration_path
end
end
并在routes.rb中添加了注册控制器
devise_for :users, controllers: { confirmations: "confirmations", registrations: "registrations"}
但仍然由于某种原因我无法重定向到同一页面,它仍然会重定向到root_path。我错过了什么吗?
编辑1:我也在使用backbone-rails gem在我的rails应用程序中使用backbone.js。 backbone.js的路由器类如下
class Pulse.Routers.MainRouter extends Backbone.Router
routes:
"new" : "newBranch"
"" : "analytics"
"analytics" : "analytics"
"voices" : "manageVoice"
"branches" : "manageBranch"
"tablets" : "manageTablet"
"branch/:branchId/tablet/:tabletId/edit" : "tabletEdit"
"branch/:branchId/tablet/new" : "tabletAdd"
"timeline" : "timeline"
"reports" : "reports"
"questions" : "manageQuestion"
"users" : "users"
":id/edit" : "edit"
":id" : "show"
".*" : "index"
后面是用于呈现用户的视图和我的routes.rb的相应函数,如下所示
authenticated :user do
root 'static_pages#home', as: :authenticated_root
end
root 'static_pages#landing'
每当我更新用户的个人资料时,我都可以看到浏览器地址为“/ users / edit”,但是索引页面正在显示,这是由于backbone.js路由器文件。在我插入console.log语句后,我可以看到控件将转到路由器文件。那么无论如何我可以绕过骨干路由器并在用户更新他的个人资料后显示'/ users / edit'页面?