質問: deviseでログイン後にユーザページに飛ばしたいです。 users/:idのときは users_show_path(resource)でいけました。 user/:user_nameのときはどうすればいいですか? オーバーライドするのかな? あとafter_sign_in_path_for(resource)の resourceって何ですか? deviseのwikiを読んでも英語ばっかでよくわかりませんでした... ``` class Users::SessionsController < Devise::SessionsController # before_action :configure_sign_in_params, only: [:create] # GET /resource/sign_in # def new # super # end # POST /resource/sign_in # def create # super # end ・ ・ ・ ``` ``` class ApplicationController < ActionController::Base protect_from_forgery with: :exception before_action :configure_permitted_parameters, if: :devise_controller? ・ ・ ・ def after_sign_in_path_for(resource) # users_show_path(User.find(resource).name) users_show_path(resource) end ・ ・ ・ end ``` 回答お願いします!!!
回答: 自己解決されたようなので、 > > after_sign_in_path_for(resource)の > > resourceって何ですか? > > > 上記にだけ回答させていただくと、以下のようになります。 私もまだ知識不足ですが、ご参考までに。 まず、ご存知の通りdeviseはModelの認証を扱うフレームワークです。 そのため、様々なModelを扱えるように汎用的に実装されています。 そしてその汎用化されたModelのことをdeviseの内部では`resource`と呼びます。 そのため、devise関連のメソッドでは複数のModelを扱えるようにデフォルトでは`resource`を設定するようになっています。