1

我在我的 rails 项目和 /users/edit 页面中使用 devise gem 4.1.1 版,我想在用户更改密码后重定向到同一页面,而不是重定向到 root_path。我用谷歌搜索,发现这个链接设计 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:我也在使用主干导轨 gem 在我的 rails 应用程序中使用主干.js。主干.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”,但索引页面正在显示,这是由于主干.js 路由器文件。在我在那里插入一个 console.log 语句后,我可以看到控件将转到路由器文件。那么无论如何我可以绕过主干路由器并在用户更新他的个人资料后显示“/用户/编辑”页面吗?

4

0 回答 0