2009-08-04 8 views
0

Ich verwende swfupload die neueste Version, 2.2.0 und Schienen 2.3.3. Nachdem ich eine Reihe von Anweisungen gesehen hatte, die CGI :: Session.initialize durch ein Stück Code ersetzen mussten, um die Sitzung aus Schlüssel/Wert-Paaren zu extrahieren, die in meine Formular-URL eingefügt wurden, integrierte ich das Code-Segment in meine Umgebung. rb:Rails weigert sich, eine Sitzung aus den von swfupload gesendeten Daten zu laden

require 'cgi' 
class CGI::Session 
    alias original_initialize initialize 
    def initialize(request, option = {}) 
     session_key = option['session_key'] || '_session_id' 
     query_string = if (qs = request.env_table["QUERY_STRING"]) and qs != "" 
      qs 
     elsif (ru = request.env_table["REQUEST_URI"][0..-1]).include?("?") 
      ru[(ru.index("?") + 1)..-1] 
     end 
     if query_string and query_string.include?(session_key) 
      option['session_id'] = query_string.scan(/#{session_key}=(.*?)(&.*?)*$/).flatten.first 
     end 
     original_initialize(request, option) 
    end 
end 

ich die Session Informationen sehen richtig in die Formularparameter verpackt als Dateien hochgeladen werden, aber der obige Code feuert nie aus der Datenbank die Sitzung Info zu bringen.

Was ist die geheime Soße, die man von einer Paket-Session-ID und Authentizitätstokens bekommt (sie werden auch nicht von den Params abgeholt)? wenn überhaupt möglich

Antwort

1
+0

Bedenkt man, wie nahe ich bin diese Arbeit und wie viel Zeit ich in sie investiert haben, zu bekommen, würde ich es vorziehen, die Antwort auf die ursprüngliche Frage zu bekommen. Ich habe mir die Rack-Middleware-Seite angeschaut und obwohl es ein funktionierendes Beispiel in Code gibt, gibt es kein laufendes Beispiel, das man als Referenz untersuchen kann. Also noch einmal, ich möchte lieber mein aktuelles Problem lösen, bevor ich das Ganze verschrotte und etwas Neues mache. Trotzdem danke. Ich werde es als meine nächste Option behalten. – Sniggerfardimungus

+0

Soweit mir bekannt ist, wird die ganze CGI-Cookie-Sache nicht mit der Version von Schienen funktionieren, die Sie verwenden, da es jetzt Rack verwendet. –