私はデバイスをインストールして動作させました。ユーザーが招待状を送信した後、ユーザーをリダイレクトする方法を理解しようとしています。今、それは私をルートにリダイレクトしています。以下の方法でカスタムパスを設定できると思いましたが、うまくいきませんでした。招待状を送信した後、パスをカスタマイズする場所を誰かが知っている場合は、事前に感謝します。
def after_invite_path_for(resource)
new_profile_path
end
私はデバイスをインストールして動作させました。ユーザーが招待状を送信した後、ユーザーをリダイレクトする方法を理解しようとしています。今、それは私をルートにリダイレクトしています。以下の方法でカスタムパスを設定できると思いましたが、うまくいきませんでした。招待状を送信した後、パスをカスタマイズする場所を誰かが知っている場合は、事前に感謝します。
def after_invite_path_for(resource)
new_profile_path
end
私は同じ問題を抱えていたので、あなたの質問に出くわしました。私が知る限り、after_invite_path_for をオーバーライドする意図した方法は、Devise::InvitationsController をオーバーライドすることです。
class Users::InvitationsController < Devise::InvitationsController
def after_invite_path_for(resource)
new_profile_path
end
end
ルート.rb
devise_for :users, :controllers => { :invitations => "users/invitations" }
devise invitable が適切な devise のように機能し、アプリケーション コントローラーで招待/受け入れパスをオーバーライドできるとよいでしょう。そのように動作するように devise_invitable を変更し、プル リクエストを送信しました。受け入れられるかどうかはわかりませんが、https ://github.com/scambra/devise_invitable/pull/240 をご覧ください。
その機能が受け入れられた場合、これを初期化子に入れることで、現在のバージョンの invitable にパッチを適用して、アプリケーション コントローラーの後の招待/承認パスの定義を尊重することができます。
#make invitable's path functions overridable in application controller
[:after_invite_path_for, :after_accept_path_for].each do |method|
Devise::InvitationsController.send(:remove_method, method) if ApplicationController.method_defined? method
end