10

私はデバイスをインストールして動作させました。ユーザーが招待状を送信した後、ユーザーをリダイレクトする方法を理解しようとしています。今、それは私をルートにリダイレクトしています。以下の方法でカスタムパスを設定できると思いましたが、うまくいきませんでした。招待状を送信した後、パスをカスタマイズする場所を誰かが知っている場合は、事前に感謝します。

 def after_invite_path_for(resource)
    new_profile_path
  end
4

2 に答える 2

22

私は同じ問題を抱えていたので、あなたの質問に出くわしました。私が知る限り、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
于 2012-10-09T21:33:21.207 に答える