2011-03-15 127 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

相关问题