Ich habe ein Problem mit Sitzungsvariablen. Ich habe zwei Controller namens 'graduate_students_controller' und 'current_students_controller'. Jeder dieser Controller steuert unterschiedliche Ansichtsdateien. Ich verwende Sitzungsvariablen mit diesen beiden Controllern, um Sitzungsinformationen zu speichern.Rails: Wie können Sie mit mehreren Controllern auf Sitzungsvariablen zugreifen?
Hier ist das Problem. Nehmen wir an, ich habe zwei View-Dateien 'reports/current_students_list', 'reports/graduate_students_list', die jeweils separat von den oben genannten Controllern kontrolliert werden.
Wenn ich nun versuche, diese beiden Webseiten aus dem selben Browser zu öffnen und gleichzeitig mit ihnen zu arbeiten, bekomme ich von der zuerst geladenen Seite den 'nil object access' Fehler. Das 'nil-Objekt' bezieht sich auf eine Sitzungsvariable, auf die die erste Seite zugreifen soll. Wenn ich jedoch eine dieser beiden Webanwendungen einzeln verwende, funktionieren sie einwandfrei.
So scheint es mir, dass Sitzungsvariablen der ersten geladenen Web-App. werden von der zweiten geladenen Web-App überschrieben. vielleicht weil die zweite Seite einen neuen Cookie über den ersten speichert?
Wie behebe ich das?
Jeder Vorschlag wird sehr geschätzt.
Um ein bisschen mehr zu verdeutlichen: Die beiden Controller gehören zur selben Rails-Anwendung. Und ich verwende nicht identische Session-Variablennamen in beiden Controllern. So kann ich nicht sehen, warum sie überschrieben werden können
Ich bin neu in Schienen und ich würde wirklich einige Hilfe bei diesem Problem zu schätzen wissen. Vielen Dank.
Mit welcher Version von Rails arbeiten Sie? Befinden sich diese Controller auch in derselben Rails-App oder in verschiedenen Apps? –
Hallo John, Ich benutze Schienen Version ist 2.2.2. Und meine Gems-Version, die in meiner environment.rb angegeben ist, lautet wie folgt: ----------- # Gibt die Gem-Version von Rails an, die verwendet werden soll, wenn Vendor/Rails nicht vorhanden ist RAILS_GEM_VERSION = '1.2.3 'wenn nicht definiert? RAILS_GEM_VERSION --------------- (Ich verwende momentan keine neuere Version auf meinem lokalen Computer, da dies die aktuellen Einstellungen auf unserem Produktionsserver sind. Und ich möchte meine apps nach ihnen) ja, diese Controller und View-Dateien gehören zu der gleichen Rails App. Also irgendeine Idee, was dieses Problem verursacht? Dank John – Vicer
Um nur zu verdeutlichen, haben die Sitzungsvariablen, auf die diese beiden Controller zugreifen, keine gemeinsamen Namen.Es gibt also keinen Grund, dass eine Sitzungsvariable überschrieben wird, es sei denn, die zweite geladene Webseite speichert einen neuen Cookie über den vorhandenen (der, der zuerst geladene Seite gespeichert hat)? Das ist der einzig logische Grund, den ich mir vorstellen kann. Aber wie kannst du so etwas reparieren? Hat jemand schon einmal eine ähnliche Situation erlebt? – Vicer