Bestätigen Sie auf der Apache Passagier-Bereitstellung: die Schienen access-Sitzung im Modell
Ich bin mit diesem Zugriff auf session-in-Modell.
http://www.zorched.net/2007/05/29/making-session-data-available-to-models-in-ruby-on-rails/
Kann jemand bestätigen, dass es funktioniert mit Apache + Passenger-Bereitstellung zu?
Oder wenn es irgendwelche anderen alternativen um das gleiche zu erreichen?
Dank,
Imran
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja. Es ist die einzige effiziente Weg, fand ich die Verwendung von session Daten im Modell. Ich auch und nie erlebte deployment-Problem mit Apache + passenger.
Aber Sie müssen bestätigen, wenn Sie spielen mit session-Werte. Auf jeder neuen Anfrage an den server, session-Wert wird gespeichert in thread und wir können es in Modell. Wenn Sie die Anwendung von Logik durch die Verwendung von thread Wert ist, dann ist auch sicherzustellen, dass mit der situation, wenn der thread könnte der Wert null auch.
Weil ich habe ein Problem, bei dem die Entwicklung, der alle meine code geklappt hat, aber auf der Produktion, während dem starten des Servers es verursacht ein Problem, als es zunächst als thread Wert als null.
before_filter :set_user
speichert die session-Wert für jeden neuen request-thread. Das bedeutet, dass jeder Benutzer haben unterschiedliche Werte, weil jeder Antrag ist anders und so thread hält an der Aktualisierung mit verschiedenen WertenHabe ich nicht gefunden, beliebigen code auf dem internet, das funktioniert, so habe ich einige der Forschung, und schrieb mein eigenes. Es funktioniert für Rails 3.2.x und wahrscheinlich auch auf einige andere Versionen.
Fügen Sie dies in Ihre
ApplicationController
Werde ich Sie nicht daran zu erinnern, dass der Zugriff auf Ihre Sitzung von einem Modell dazu führen kann schlechten code. Andere Beiträge kann man sagen, dass Sie dumm sind. Aber es gibt einige triftige Gründe, um den Zugriff auf die Sitzung vom Modell ab, wie die Umsetzung einer
Model.save
Methode, das spart auf den aktuellen Benutzer-Sitzung.undefined local variable or method session'
JRuby
,Puma
server etc.) ohneRack::Lock
. VersuchenThread.current[:session] = session
statt und auf Sie durchThread.current[:session]
.