1

Rails プロジェクトと /users/edit ページで devise gem バージョン 4.1.1 を使用しています。ユーザーがパスワードを変更した後、root_path にリダイレクトするのではなく、同じページにリダイレクトしたいと考えています。私はグーグルで検索し、このリンク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 を使用して、レール アプリ内で 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」ページを表示できる方法はありますか?

4

0 に答える 0