Ich stolperte über Ihre Frage, weil ich das gleiche Problem hatte. Soweit ich sagen kann, ist der beabsichtigte Weg für Sie, nach_invite_path_for zu überschreiben, Devise :: InvitationsController zu überschreiben.
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" }
Es wäre schön, wenn devise invitable wie richtige entwickeln gearbeitet und man konnte seine nach laden/akzeptieren Pfade in Anwendungssteuerung außer Kraft setzen. Ich habe devise_invitable geändert, um auf diese Weise zu arbeiten, und eine Pull-Anfrage gesendet. Ich bin mir nicht sicher, ob es akzeptiert wird oder nicht, aber Sie können hier nachsehen: https://github.com/scambra/devise_invitable/pull/240.
Wenn diese Funktion akzeptiert wird, können Sie Ihre aktuelle Version von invitable Patch-Definitionen respektieren von nach laden/akzeptieren Pfade in Anwendungssteuerung durch diese in einem Initialisierer setzen:
#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
Ich verwende devise_invitable mit der Patch oben, aber es scheint immer noch nicht mit einer Überschreibung in 'ApplicationController' zu arbeiten. Das Überschreiben von 'after_invite_path_for' in einem' Users :: InvitationsController' funktioniert, die Ressource ist jedoch falsch. Ich habe den Autor gebeten, das Problem erneut zu lösen. https://github.com/scambra/devise_invitable/pull/240#issuecomment-11915891 –