2012-04-23 2 views
1

나는 Rails3 앱을 펑 (개발 중)에서 실행 중이며 Cramp 애플리케이션은 씬에서 실행 중입니다. 저는 Rails에서 쿠키 기반의 세션을 사용하고 있습니다. Cramp가 Rails가 생성 한 세션에 액세스 할 수있게하고 싶습니다.Rails3 앱과 Cramp간에 세션을 공유하려면 어떻게해야합니까?

어떻게 할 수 있습니까? 나는 루비와 레일즈에 상당히 새로운 사람이다.

감사합니다.

답변

0

글쎄, SSE에서 작동하는 방법을 알아 냈지만, 현재 당신이 나를 도울 수있는 흥미로운 문제를 디버깅 중입니다.

그래서 나는이 모든 내 아이의 행동에 사용할 수있는 레일 세션을 만든 다음 ApplicationAction

class ApplicationAction < Cramp::Action 
    before_start :load_session 

    def load_session 
     session_id = request.cookies['_session_id'] 
     @session = Session.where(:session_id => session_id).first 
     yield 
    end 
end 

를 만들었습니다. 그런 다음 세션 모델 (ActiveRecord와 함께 경련을 일으켰습니다)과 다음 모델을 추가했습니다.

class Session < ActiveRecord::Base 
    set_table_name :sessions 

    # Get the data on the sessions table 
    def data; Marshal.load(Base64.decode64(read_attribute(:data))); end 
end 

이것은 실제로 마샬링 된 모든 클래스가 인스턴스화 될 수 있다고 가정 할 때 완벽하게 작동합니다. 내가 문제가되는 곳은 어느 곳인가. 이것은 레일스에 의해 세션 데이터로 직렬화 될 때 ActionDispatch에 문제를 일으 킵니다.

현재 더 나은 솔루션을 찾으려고합니다.