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」ページを表示できる方法はありますか?