前提・実現したいこと
Ruby on Rails 5にて、deviseを用いてnameカラムを追加した上でユーザー管理を行っています。
userのshowページのパスは、users/:idから、users/:nameへと変更して運用したいと考えています。
発生している問題・エラーメッセージ
userのプロフィール情報を更新した後に、userのshowにリダイレクトさせようと思い、RegistrationsController で、after_update_path_for メソッドをオーバーライドしたところ、リダイレクトされたshowページのパスが、編集前のnameになってしまっています。
例
usersをhenkoumaeからhenkougoに変更し、更新しても、リダイレクトされるパスはusers/henkoumae
nameの更新自体は正常に行えていますので、after_update_path_forメソッドの理解不足であると思いますが、同様の事例がなかなか見つからず困っております。
以下ソースコードになります。お力添えいただけると幸いです。
ルーティング
ruby
1Rails.application.routes.draw do 2 3devise_for :users, controllers: { 4 #略 5 } 6 7 resources :users, param: :name ,only: [:show] 8 9end
モデル
ruby
1class User < ApplicationRecord 2 3 def to_param 4 name 5 end 6 7end
コントローラー
ruby
1class Users::RegistrationsController < Devise::RegistrationsController 2 3 protected 4 5 def after_update_path_for(resource) 6 user_path(current_user) 7 end 8end 9
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。