是否可以将 Flash 消息从 Rails 传递到 Sinatra?

发布于 2024-10-21 21:22:27 字数 577 浏览 4 评论 0原文

我有一个项目,使用 Sinatra 作为静态页面,使用 Rails 作为应用程序。

我允许请求通过在 config.ru 中执行以下操作来命中其中一个:

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

其中 EightyEightTactical::RootSinatra::Base 的子类code> 和 EightyEightTactical::ApplicationRails::Application 的子类。

我遇到了一个棘手的情况,我需要在 Rails 控制器中设置闪存消息并将其显示在 Sinatra 布局中。

我注意到 Rails 在中间件中使用 ActionDispatch::Flash ,但我似乎无法弄清楚如何在 Rails 应用程序之外访问 flash 消息。我是否弄错了,或者这可以做到吗?

I have a project that uses Sinatra for static pages and Rails for the application.

I allow the request to hit one or the other by doing this in config.ru:

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

Where EightyEightTactical::Root is a subclass of Sinatra::Base and EightyEightTactical::Application is a subclass of Rails::Application.

I'm in a tricky situation where I need to set a flash message in a Rails controller and display it in a Sinatra layout.

I notice that Rails uses ActionDispatch::Flash in middleware, but I can't seem to figure out how to access the flash messages outside of a Rails app. Am I mistaken, or can this be done?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

琉璃梦幻 2024-10-28 21:22:27

假设您使用 Cookie 会话存储,您可以执行以下操作:

1) 使用 config/initializers/session_store.rb 中指定的名称访问会话 cookie。

2) 解密会话 cookie 以获取会话哈希

3) 访问包含哈希的名为 flash 的密钥。

4) 迭代并显示闪现消息。

您应该查看 ActionController:: Session::CookieStore 类了解更多详细信息。

Assuming you are using a Cookie session store, you can do the following:

1) Access the session cookie with the name specified in config/initializers/session_store.rb.

2) Decrypt the session cookie to get the session hash

3) Access the key called flash which contains a hash.

4) Iterate and display the flash message.

You should look at ActionController::Session::CookieStore class for more details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文