2009-08-19 3 views
1

Je cours dans une erreur CookieOverflow, donc je veux passer aux sessions de base de données.Comment faire fonctionner des sessions d'enregistrements actifs dans l'application Ruby on Rails?

Dans config/environment.rb:

Uncommented: config.action_controller.session_store = :active_record_store 
Changed: :secret for config.action_controller.session 

En application.rb:

Uncommented: protect_from_forgery :secret => 'ac44a970c0047c1b049c1967986af674' 

Je couru quelques rake ... », il m'a dit les commandes, et il a créé cette base de données table:

CREATE TABLE `sessions` (
`id` int(11) NOT NULL auto_increment, 
`session_id` varchar(255) NOT NULL, 
`data` text, 
`created_at` datetime default NULL, 
`updated_at` datetime default NULL, 
PRIMARY KEY (`id`), 
KEY `index_sessions_on_session_id` (`session_id`), 
KEY `index_sessions_on_updated_at` (`updated_at`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

Maintenant, cela semble tout bon et fait. MAIS il n'écrit jamais de sessions dans la base de données. Les connexions fonctionnent quand même. Quoi d'autre dois-je faire pour que cela fonctionne? Comment cela fonctionne-t-il même s'il utilise des sessions d'enregistrement actives et n'écrit aucune donnée de session dans la base de données ...?

Existe-t-il un moyen facile d'y remédier/de résoudre ce problème?

+0

Vous n'avez définitivement aucune ligne dans votre table de sessions? –

+0

SELECT * FROM sessions OERE 1 MySQL a retourné un jeu de résultats vide (c'est-à-dire zéro rangée). La requête a pris 0.00002 sec) –

+0

Quelqu'un sur le forum de Rails a noté que je devrais redémarrer le serveur après avoir édité environment.rb, essayant ainsi de savoir comment je reçois RailsPlayground pour faire cela pour moi maintenant ... –

Répondre

0

Assurez-vous que les sessions cookie ne sont pas activées dans development.rb (ou dans tout autre environnement dans lequel vous exécutez ce programme). Après cela, s'il vous plaît poster votre contrôleur de sessions.