2016-07-11 10 views
4

Also hier ist mein Problem. Ich habe eine Hauptanwendung, die darin entwickelt hat, für die ich eine Maschine erstelle. In der Engine brauche ich den current_user von der Haupt-App. Nicht sicher, wie ich das bekommen werde, versuchte ich this link, aber ohne Erfolg. Jede Hilfe wäre großartig. Wenn dies nicht empfohlen wird, erklären Sie bitte warum.Zugriff auf das Gerät current_user in einem anderen Rails-Engine

Antwort

2

es Gelöst

Im Motor Sie die wichtigsten app 'main_app' zugreifen können. In dieser Variable haben Sie Zugriff auf den aktuellen Benutzer, vorausgesetzt, Sie haben ein Gerät. Um devise current_user Zugriff auf alles, was Sie tun müssen, ist

main_app.scope.env['warden'].user 

Devise speichert der Benutzer innerhalb warden Schlüssel in der Sitzung. Da es Warden intern verwendet, um die Details in der Sitzung zu authentifizieren und zu speichern.

Wenn es eine alternative Lösung gibt, lassen Sie es mich bitte wissen.

1

Wenn Sie Rails verwenden 5.1+ würde dies

sein statt

main_app.scope.request.env['warden'].user

Das ist, weil env veraltet ist.