2017-10-19 5 views
1

Ich benutze Devise in einer Schiene App ich baue. Ich möchte die ID des Benutzers erhalten, der derzeit mit current_user.id in meinem Controller angemeldet ist, ohne es als ein Parameter aus meiner Sicht übergeben. Kann ich das irgendwie machen? DankeZugriff auf current_user devise-Methode von Schienen-Controller

+3

Ich muss es fragen, haben Sie versucht, 'current_user.id' zu verwenden? –

+0

@ Sebastián Palma ja ich habe es versucht und habe tihs error: undefined Methode 'id 'für nil: NilClass – RT5754

Antwort

2

Wenn Sie Devise richtig installiert haben und nicht durch das Überschreiben der Devise-Controller etwas kaputt gemacht haben, sollten Sie vom Controller aus auf current_user.id zugreifen können. Diese Methode funktioniert nur, wenn ein Benutzer angemeldet ist, in dem Sie mit der Methode user_signed_in? testen können. Schließlich wird davon ausgegangen, dass der Ressourcenname, den Devise verwendet, tatsächlich user ist. Dies ist die Standardeinstellung, aber es ist möglich, Devise so zu konfigurieren, dass es mit verschiedenen Ressourcennamen arbeitet.

+0

Ich habe diese Schiene Devise Starter App verwendet: https://github.com/RailsApps/rails-devise – RT5754

+0

@ RT5754: Die' Die current_user-Methode sollte in allen Controllern in der Starter-App verfügbar sein, die Sie verknüpft haben. –

+0

und wenn ich neue Controller erstellt habe, muss ich Geräte oder etwas in ihnen enthalten, um auf diese Methoden zugreifen zu können? – RT5754

Verwandte Themen