我遇到了CookieOverflow错误,因此我想切换到数据库会话。
在config / environment.rb中:
Uncommented: config.action_controller.session_store = :active_record_store
Changed: :secret for config.action_controller.session
在application.rb中:
Uncommented: protect_from_forgery :secret => 'ac44a970c0047c1b049c1967986af674'
我跑了一些'rake ...'命令告诉我,它创建了这个数据库表:
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 ;
现在,这似乎一切都很好。 BUT 它永远不会将任何会话写入数据库。登录仍然有效。我还需要做些什么来完成这项工作?如果它使用活动记录会话而不是将任何会话数据写入数据库,那么它是如何工作的??
是否有一种简单的方法可以逐步完成/排除故障?
答案 0 :(得分:0)
确保您没有在development.rb中启用cookie会话(或者您正在运行此任何环境)。之后,请发布会话控制器。