2011-03-15 125 views
5

我有一個使用Sinatra進行靜態頁面和Rails應用程序的項目。是否可以將Rails的Flash消息傳遞給Sinatra?

我允許請求打一個或另一個在config.ru這樣做:

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

EightyEightTactical::RootSinatra::BaseEightyEightTactical::Application一個子類是Rails::Application一個子類。

我在棘手的情況下,我需要在Rails控制器中設置一個Flash消息並將其顯示在Sinatra佈局中。

我注意到,Rails使用中間件ActionDispatch::Flash,但我似乎無法弄清楚如何訪問一個Rails應用程序之外的提示信息。我錯了,還是可以這樣做?

回答

3

假設你正在使用一個Cookie會話商店,你可以做到以下幾點:

1)在config/initializers/session_store.rb指定的名稱訪問會話cookie。

2)解密會話cookie獲取會話哈希

3)訪問稱爲flash其中包含一個哈希的關鍵。

4)迭代並顯示flash消息。

你應該看看ActionController::Session::CookieStore類的更多細節。

+1

[這是代碼](https://gist.github.com/873195)對於任何其他感興趣的人。 – 2011-03-16 20:00:43

+0

我想提供一個類似於你的代碼示例以供參考,但卻懶得:-)。 – 2011-03-17 00:47:59

相關問題