2014-06-05 16 views
8

Recentemente ho aggiornato un'app di Rails v3.x su Rails 4.1.1 e tutto sembrava in transizione per la maggior parte, ma comunque quando passo l'applicazione dalla produzione allo sviluppo nella configurazione di apache file, viene visualizzato il messaggio di errore We're sorry but something went wrong So che l'ambiente di sviluppo funziona perché è possibile visualizzare la richiesta GET elaborata nel file development.log. Ma poco dopo la richiesta GET ottengo il seguente nel registroRuby on Rails - formato file marshall incompatibile

ActionView::Template::Error (incompatible marshal file format (can't be read) format version 4.8 required; 123.34 given):

+0

Molto probabilmente si dispone di dati di sessione che hanno oggetti serializzati di classi che sono cambiati tra le versioni. Prova a eliminare sessioni. (Un rapporto su dove appare esattamente l'errore sarebbe probabilmente utile). – Amadan

+0

Come farei per "eliminare sessioni"? – Chris

+1

Dipende da cosa è configurato su 'session_store'. – Amadan

risposta

6

Nel mio caso, questo errore è stato causato da me giocare con la nuova opzione cookies_serializer in config\initializers\cookies_serializer.rb.

In fase di sviluppo l'ho impostato su :json (il che significava che i miei cookie locali erano serializzati come json), ma poi ho rimosso completamente l'opzione e l'ho messa in produzione. Se poi eseguivo nuovamente il server in sviluppo, i miei cookie serializzati JSON hanno causato lo stesso errore.

Quindi, se avete mai correre con cookies_serializer set per :hybrid o :json allora si avrà bisogno di portare avanti in esecuzione con (almeno) :hybrid.

+0

Ya destra. : ibrido è la strada da percorrere per risolvere questo problema. – Francisco