Mon application nécessite de conserver des objets de données importants en session. Il existe comme 3-4 objets de données créés chacun en analysant un CSV contenant 150 x 20 cellules ayant des chaînes de 3-4 caractères. Mon application montre cette erreur - "Données de maréchal trop courtes". J'ai essayé cela-
Rake DB: Sessions: Créez code>. li>
- Modification manuelle de la migration, modifie
texte: données code> sur longtext: données code>. li>
- Exécution de la migration à l'aide de
Rake DB: migrer code>. Li>
ul> Autres détails de l'application - P>
dans la vue "Index.html.erb" - Il existe un lien qui rend l'appel AJAX à une action dans le contrôleur, cette action analyse le gros fichier CSV et en fait un objet. Cet objet est stocké en session. p>
journal d'erreur p> xxx pré> demande p>
paramètres: p>
Aucun < / p>
Afficher le vidage de la session p>
réponse p>
en-têtes: p> xxx pré> ` p> < / p>
6 Réponses :
Qu'est-ce qui s'affiche dans le journal des erreurs après avoir accès à la page qui donne cette erreur?
Aussi, quel est le type de colonne pour vos informations de session dans MySQL? Texte? P>
---------------- éditez ci-dessous ----------------- P>
OK, comme Loin que j'ai pu déterminer, cette erreur signifie généralement que la taille du contenu que vous poussez dans la session est trop grande pour la colonne MySQL. La solution la plus courante citée semble indiquer une solution de modification de la colonne du texte en longtext. P>
Essayez d'exécuter quelque chose comme celui-ci dans MySQL et voyez s'il vous donne une amélioration: P>
ALTER TABLE sessions CHANGE COLUMN data data LONGTEXT
Au lieu de la table manuelle Alter, vous pouvez également faire une migration avec une limite, comme celle-ci:
class FixSessionStore < ActiveRecord::Migration def self.up change_column :sessions, :data, :text, :limit => 4.megabytes end def self.down end end
Les solutions précédentes ne fonctionnaient pas pour moi. Ce qui a travaillé pour moi était d'effacer le cache de la session avec
rake db:sessions:clear
Cela doit être fait pour réduire les sessions corrompues créées avant de prolonger la taille de la colonne Session.Data. MySQL tronque silencieusement.
in rails 4 Mode de développement J'avais la même erreur et la solution était la suivante: p>
Supprimer tous les fichiers de cache de / TMP / cache / actif dossier. P>
(malheureusement râblant des actifs: Nettoyer Je n'ai tout simplement pas résolu ce problème.) P>
J'ai rencontré le même problème.
My Rails La version est 4.1.4. P>
J'ai résolu ce problème en exécutant: P>
rake tmp:clear
Cela a fonctionné pour moi