Überschreiben der current_user-Hilfsmethode des Device Gem
Wie kann ich das überschreiben current_user von entwickeln, gem.
Eigentlich muss ich noch hinzufügen web-services für die mobile-app.
Derzeit entwickeln, ist die Verwaltung von Sitzungs-und 'current_user' für die web-Anwendung.
Nun Mobile app senden Benutzerkennung an den server. Ich muss zum überschreiben der aktuellen Benutzer, wie dies
def current_user
if params[:user_id].blank?
current_user
else
User.find(params[:user_id])
end
end
Muss ich ändern, entwickeln Juwel als plugin ? oder etwas anderes ?
Freundlich erklären im detail, wie ich bin neu in rails.
Freundlichen GRÜßEN,
InformationsquelleAutor der Frage Omer Aslam | 2012-04-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entsprechend dem Modul Entwickeln::Controller::Helfer
current_user
(zusammen mit allen anderen entwickeln, Helfer) Hinzugefügt ApplicationController, was bedeutet, dass Sie außer Kraft setzen können, es auf diese Weise:InformationsquelleAutor der Antwort Limbo Peng
Die andere Antwort, die darauf hindeutet aliasing die Methode ist eigentlich nicht die beste Lösung. Doug englische Kommentar ist die beste Lösung:
Hier ist der Grund:
Angenommen, Sie sind einschließlich Ihrer ApplicationHelper in Ihrer Steuerung. Wenn Sie eine Methode in Ihrer ApplicationHelper, die sich auf devise_current_user, da die alias-Lösung im inneren der Steuerung, sind Sie aus Glück heraus.
Aber mit der expliziten Methode definition oben ist, verschieben Sie die definition der Helfer und rufen Sie es von anderen Methoden und Sie immer noch bekommen, um es in den controller.
Dies ist zum Beispiel nützlich, wenn Sie die Entwicklung ein Benutzeridentitätswechsel Lösung, und Sie müssen, um zwei verschiedene Benutzer in der Ansicht, eine für den echten admin (devise_current_user) und der andere, den imitierten Benutzer (current_user).
InformationsquelleAutor der Antwort Amin Ariana
Annahme können wir das Vertrauen unserer session-Daten (die stützt sich auf, ob Sie setzen die Benutzereingaben in der es ohne eine entsprechende Genehmigung oder nicht), dies könnte als ein Anliegen:
Ich bin mit diesem in einem Projekt für jetzt.
Eine kleine Frage (die Antwort ein, sorry) ... sollte ich mir bewusst sein, alle änderungen Auszudenken oder Warden, machen
devise_current_user
oben überholt?InformationsquelleAutor der Antwort haslo
Limbo-Pengs Antwort ist toll, aber verbessert werden kann ein wenig sorgen dafür, dass nur admins können dies tun:
Müssen Sie auch definieren ein
is_admin?
Methode oderis_admin
- Attribut auf die Klasse User.Möglicherweise möchten Sie auch auf eine andere Taste als
user_id
so dass es nie zu Konflikten mit Ihren regulären Parameter.InformationsquelleAutor der Antwort Tilo