2012-10-04 1 views
6

Ich habe das Gerät invitable installiert und funktioniert. Versuchen herauszufinden, wie der Benutzer umgeleitet wird, nachdem er eine Einladung gesendet hat. Im Moment leitet es mich zur Wurzel. Ich dachte, Sie können einfach Ihren benutzerdefinierten Pfad in der folgenden Methode festlegen, aber es hat nicht funktioniert. Vielen Dank im Voraus, wenn jemand weiß, wo der Pfad nach der Einladung angepasst werden soll.Rails Devise Invitable Redirect nach senden invititaion

def after_invite_path_for(resource) 
    new_profile_path 
    end 

Antwort

11

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 
+1

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 –