ruby-on-rails - 如何从session_id加载Rails session ?

标签 ruby-on-rails session cookies ruby-on-rails-4

我正在使用MyApp::Application.config.session_store :active_record_store在我的应用程序中将 session 存储在数据库中。一切都很好。但是,我希望能够在传递 session_id 时加载特定 session 。 。这是服务器在客户端存储为 cookie 的值。

我的 Rails 应用程序有一个无法使用 cookie 的客户端,因此它必须向我传递 session_id在一个参数中。我想使用before_action或某种过滤器来获取该参数并使用它来加载 session由于缺乏适当的 cookie,在我的 Controller 中而不是应用程序加载空 session 。

有什么办法可以做到这一点吗?我不想完全关闭 cookie 方法,因为我的 Web 客户端使用 cookie,只是我的移动客户端不能。

编辑: 如果我声明class Session < ActiveRecord::Base然后做Session.find_by_session_id('whatever')我确实得到了一个 Session ActiveRecord 对象,但我不确定如何将其变成可用的 session在正常的 Rails 意义上。

最佳答案

只需在 before_action 过滤器中执行 request.session_options[:id] = "whatever you Want",Rails 将在您访问 session 时使用该 session_id 来加载 session (感谢延迟加载)。

关于ruby-on-rails - 如何从session_id加载Rails session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17824628/

相关文章:

python - 为什么每个浏览器窗口的 session 不是唯一的

google-chrome - Chrome 开发工具如何显示 cookie

ruby-on-rails - Ruby on Rails 语法错误,意外 '\n' ,期待 &。或::或 '[' 或 '.'

ruby-on-rails - 事件模型序列化不适用于 api 版本控制

hibernate - 空闲事务 Hibernate/PostgreSQL

security - session 管理 : How to generate Authentication token for REST service ?( Jersey )

ruby-on-rails - Rails - 如何使用 github 上的插件(如何安装、使用等)

ruby-on-rails - Rails 4 : Font Awesome working locally, 在 Heroku 上中断

django - 什么是签名 cookie 以及它们为何有用?

javascript - 该脚本必须运行 1 次。如何?