2011-03-15 3 views
5

정적 페이지에는 Sinatra를 사용하고 응용 프로그램에는 레일즈를 사용하는 프로젝트가 있습니다.Rails에서 Sinatra로 플래시 메시지를 전달할 수 있습니까?

내가 요구 한 공격 할 수 또는 config.ru에서이 작업을 수행하여 다른 : EightyEightTactical::RootSinatra::BaseEightyEightTactical::Application의 서브 클래스입니다

run Rack::Cascade.new([ 
    EightyEightTactical::Root, 
    EightyEightTactical::Application 
]) 

Rails::Application의 서브 클래스입니다.

나는 Rails 컨트롤러에서 플래시 메시지를 설정하고 Sinatra 레이아웃으로 표시해야하는 까다로운 상황에 직면 해있다.

레일스는 미들웨어에서 ActionDispatch::Flash을 사용하지만 레일스 앱 외부에서 플래시 메시지에 액세스하는 방법을 알 수없는 것 같습니다. 내가 잘못 했습니까, 아니면 이것을 할 수 있습니까?

답변

3

당신이 쿠키 세션 저장소를 사용하는 가정하면, 다음을 수행 할 수 있습니다

1) config/initializers/session_store.rb에 지정된 이름의 세션 쿠키를 액세스 할 수 있습니다.

2) 세션 해시

3) 해시를 포함 flash라는 키에 액세스를 얻기 위해 세션 쿠키를 해독.

4) 플래시 메시지를 반복하여 표시하십시오.

자세한 내용은 ActionController::Session::CookieStore 클래스를 확인하십시오.

+1

관심있는 사람은 [다음은 코드입니다] (https://gist.github.com/873195). –

+0

나는 당신과 비슷한 코드 샘플을 제공하고 싶지만, 게으르다 .-). –