Natknąłem się na twoje pytanie, ponieważ miałem ten sam problem. O ile mogę przewidzieć, w jaki sposób zastąpić after_invite_path_for, należy zastąpić Devise :: InvitationsController.
class Users::InvitationsController < Devise::InvitationsController
def after_invite_path_for(resource)
new_profile_path
end
end
routes.rb
devise_for :users, :controllers => { :invitations => "users/invitations" }
Byłoby miło, gdyby Devise invitable pracował jak opracować właściwe i można zastąpić ITS po zaprosić/zaakceptować ścieżek w kontrolerze aplikacji. Zmodyfikowałem devise_invitable, aby działało w ten sposób i przesłałem żądanie ściągnięcia. Nie jestem pewien, czy zostanie zaakceptowany, czy nie, ale możesz zajrzeć tutaj: https://github.com/scambra/devise_invitable/pull/240.
Jeśli ta funkcja zostanie zaakceptowany, można załatać swoją aktualną wersję invitable szanować definicje po zaprosić/zaakceptować ścieżek w kontrolerze aplikacji poprzez umieszczenie tego w inicjalizatorze:
#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
Używam devise_invitable z patch powyżej, ale nadal nie działa z override w 'ApplicationController'. Nadpisywanie 'after_invite_path_for' w' Users :: InvitationsController' działa, jednak zasób jest niepoprawny. Poprosiłem autora o ponowne otwarcie problemu. https://github.com/scambra/devise_invitable/pull/240#issuecomment-11915891 –