2009-08-19 4 views
1

CookieOverflow 오류가 발생하여 데이터베이스 세션으로 전환하고 싶습니다. 설정에서Ruby on Rails 응용 프로그램에서 활성 레코드 세션을 얻으려면 어떻게해야합니까?

/environment.rb에 : application.rb에서

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

:

Uncommented: protect_from_forgery :secret => 'ac44a970c0047c1b049c1967986af674' 

나는 '... 레이크'몇 가지를 실행 그것을하라고 명령하고,이 데이터베이스를 생성 표 :

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

SELECT * FROM sessions WHERE 1 MySQL은 빈 결과 집합 (즉, 0 행)을 반환했습니다. 쿼리는 0.00002 초 걸렸습니다. –

+0

레일즈 포럼의 누군가가 environment.rb를 편집 한 후 서버를 다시 시작해야한다고 말했습니다. 그래서 RailsPlayground가 나에게 어떻게 할 수 있는지 알아 내려고합니다 ... –

답변

0

development.rb (또는이 환경에서 실행중인 모든 환경)에서 쿠키 세션을 활성화하지 않았는지 확인하십시오. 그 후에 세션 컨트롤러를 게시하십시오.

관련 문제