如何在rails 2.3.3中有条件地分配ActionController::Base.session

2024-03-31

我有一个 Rails 应用程序,在 config/initializers/session_store.rb 文件中包含以下内容:

ActionController::Base.session = {
  :key         => '_app_session',
  :secret      => 'a really long string here',
  :expire_after => 2.minutes
}

ActionController::Base.session_store = :active_record_store

因此,在正常操作期间,我们会看到数据库中为每个会话创建的 ActiveRecord 对象。问题是我们并不总是希望为请求创建会话 - 我们希望能够关闭自动请求的会话创建。我们在数据库中看到数千条会话记录,每一条记录对应一个自动请求。在 Rails 2.3.3 之前,可以进行以下操作:

class ApplicationController < ActionController::Base
  session :off
  ...
end

但现在在 Rails 2.3.3 中,“session :off”已被弃用,因为会话现在是延迟加载的 - 如果您不使用它们,则不会创建它们。问题似乎是会话对象总是在 sessionstore.rb 文件中分配,因此总是被创建。如果我从配置文件中删除会话分配块,则自动请求后不会出现会话记录。我的问题是,如何将配置分配移至 session_store.rb 中的会话哈希并移至 ApplicationController 类(或其他地方),其中仅当请求不是自动执行时才可以有条件地分配会话?我担心在执行控制器处理程序之前可能需要会话配置数据。我应该把会话键值的分配放在哪里?

预先感谢您的任何帮助。


配置/初始化程序是一次性配置,它们通常仅在启动时运行一次。根据文档,延迟加载只会在“session”对象被触摸时初始化会话在请求期间.

您确定在请求周期中根本不触及会话变量吗? (即在过滤器、操作、帮助器或模板中)。另外,会话对象是否有一些内容可以提示您它们的创建位置?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在rails 2.3.3中有条件地分配ActionController::Base.session 的相关文章

  • 如何使 Rails 3 资源预编译速度更快?

    我有一个正在运行的 Rails 3 2 1 应用程序 我正在通过 Capistrano 进行部署deploy assets它运行deploy assets precompile task 一切工作都很好 除了编译本身非常慢 我没有那么多 C
  • Mongoid 中的 find_or_create_by 线程安全吗?

    我有一个使用 Mongoid 的 find or create by 方法的网络应用程序 poll Poll find or create by fields 在投入生产之前 我尝试运行故障场景 我发现多个用户可以尝试使用此方法访问此资源
  • Rails 4 - 如何链接到 PDF 文件(名称.PDF)?

    我正在生成 PDF 文件 我的链接如下所示 当我点击这个时 它会带我去 display invoice 123456789 这是一个 HTML 版本 在控制器中的操作如下 def display invoice if params invo
  • 多态控制器和调用对象

    我的地址具有多态关系 可以由成员或依赖者拥有 一切看起来都很棒 直到我意识到除非我遗漏了一些东西 否则我不知道创建它的对象是什么类型 有没有办法告诉路由文件包含对象的类型 Models class Member lt ActiveRecor
  • 捆绑安装无法从 https://rubygems.org/ 获取规格

    我正在尝试遵循 Hartl Rails 教程 但在使用捆绑器 gem 时遇到了问题 使用命令 bundle install 或 bundle update 时 我得到以下输出 从中获取源索引https rubygems org https
  • 为什么 mongrel 没有在 Rails 3.2.rc 中启动?

    启动 mongrel 的 GEMFILE gem rails 3 1 0 gem mongrel gt 1 2 0 pre2 启动 WEBrick 的 GEMFILE 不是杂种 gem rails 3 2 0 rc2 gem mongrel
  • 资产管道弃用警告 tsort.rb:226

    我的 Rails 4 2 在开发中运行良好 但在生产环境中我收到以下警告 DEPRECATION WARNING The configuration option config serve static assets has been re
  • 目前最流行的 Ruby on Rails AUTHORIZATION gem/plugin 是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何从引擎覆盖 Rails 应用程序路由?

    我有一个 Rails 应用程序 我正在尝试将 Rails 引擎集成到其中 主机应用程序有一些捕获所有路由 magic urls match gt admin rendering show match path edit gt admin r
  • Django HTTPS 和 HTTP 会话

    我使用 Django 1 1 1 和 ssl 重定向中间件 通过 HTTPS 创建的会话数据 身份验证等 在站点的 HTTP 部分中不可用 无需将整个站点设置为 HTTPS 即可使其可用的最佳方法是什么 这是设计使然 您无法轻易更改 当通过
  • 多重要求和允许强参数rails 4

    在下面的情况下 我尝试使用强参数 我想要求email address password并允许remember me fields 但像下面这样使用它只允许最后一行在方法示例中 在下面的情况下 它只需要params permit rememb
  • 如何使用 Rspec 测试具有嵌套路由的控制器?

    我有 2 个使用轨道脚手架生成器创建的控制器 我希望它们嵌套在一个名为 demo 的文件夹中 所以运行 rails g scaffold demo flows rails g scaffold demo nodes 然后我决定将节点嵌套在流
  • 使用 Ruby aws-sdk 跟踪文件到 S3 的上传进度

    首先 我知道SO中有很多与此类似的问题 在过去的一周里 我读了大部分 如果不是全部 但我仍然无法让这项工作为我工作 我正在开发一个 Ruby on Rails 应用程序 允许用户将 mp3 文件上传到 Amazon S3 上传本身工作正常
  • Rails - 渲染:目标锚标记的操作?

    我希望像这样使用渲染 render action gt page form 我也尝试过这个 render template gt site page form 那也没用 这个特定页面上的表单位于最底部 如果提交时发生任何错误 我不希望用户被
  • session_regenerate_id 没有创建新的会话 id

    我有一个脚本 旨在完成当前会话并开始新的会话 我使用了一段代码 它在我的开发计算机上运行良好 但是 当我将其发布到生产服务器时 会话 ID 始终保持不变 以下是我重新启动会话的代码 session start SESSION array P
  • 如何向 Rails 应用程序添加自定义字体?

    我想在 RoR 应用程序中使用几种字体 但它们的格式主要是 ttf 和 otf 等 我该如何将这些文件嵌入到我的 Rails 应用程序中 也就是说 一旦我将它们放入我的资产文件夹中 将它们嵌入我的 CSS 和 或 LESS 文件中的语法到底
  • 来自控制器的 Rails 验证

    有一个联系页面 可以输入姓名 电话 电子邮件和消息 然后发送到管理员的电子邮件 没有理由将消息存储在数据库中 问题 如何 在控制器中使用 Rails 验证 根本不使用模型 或者 在模型中使用验证 但没有任何数据库关系 UPD Model c
  • Ruby/Rails 集合到集合

    我有两个表与一个连接表连接 这只是伪代码 Library Book LibraryBooks 我需要做的是 如果我有一个图书馆的 id 我想获取该图书馆拥有的所有书籍所在的所有图书馆 因此 如果我有图书馆 1 图书馆 1 中有书籍 A 和
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开
  • 将rails_admin 与rails_api 结合使用

    我最初将此发布为Rails api GitHub 上的问题 https github com sferik rails admin issues 2617 但由于不活跃 我现在将其发布在这里 我正在尝试使用rails admin使用 Rai

随机推荐

  • Rails 图像标签中的多个图像

    我想知道是否可以将数组传递给 Rails 图像标签 该数组将包含一系列 png 图像 我希望视图能够旋转显示这些图像 有谁知道这是怎么做到的吗 这是行不通的 div class img circle div 我似乎找不到说明 rails 指
  • 如何获取 nautilus 用于给定文件的缩略图?

    Nautilus 向我显示文件的缩略图 如果它是图像 它会向我显示预览 如果它是视频 它会显示视频中的帧 如果它是文档 它会向我显示应用程序图标 我如何访问该图像 我看到它们被缓存在 thumbnail 然而 它们都被赋予了独特的名字 缩略
  • 寻找最小组件集合的算法

    我正在寻找一种算法来解决以下问题 我有给定集合 a h 的多个子集 1 n 我想找到最小的子集集合 它允许我通过组合来构造所有给定的子集 该集合可以包含 1 n 中尚不存在的子集 a b c d e f g h 1 1 2 1 1 3 1
  • 状态栏在 ionic 3 中不起作用

    我是 IONIC 3 的新手 我只想在我的应用程序中实现状态栏 我尝试了以下方法 import App Nav Platform Events AlertController from ionic angular import Status
  • 在 iframe 加载之前运行脚本

    我正在使用嵌入在应用程序中的帮助系统 帮助的重要部分尝试具有相同的 document domain 值 但子 iframe 似乎在父 iframe 之前运行其 document domain 设置 这是一个问题 因为它会引发安全错误并停止
  • 无法注册 PS 图库

    我读了很多论坛并尝试了很多东西 但我就是无法添加PS图库 我使用公司代理 但我已设置我的个人资料以使用它 我正在尝试使用这些命令注册 PS 存储库 Net ServicePointManager SecurityProtocol Net S
  • bash 如何处理嵌套引号? [复制]

    这个问题在这里已经有答案了 我需要使用如下语法运行命令 runuser l userNameHere c path to command arg1 arg2 不幸的是 我必须嵌套额外的 字符到命令本身中 我无法告诉 bash 正确解释这些字
  • Web:我什么时候应该考虑使用 Java 而不是 PHP、Python/Django、Ruby/Rails 等?

    如果收集中型到大型基于 Web 的项目的需求 在什么时候应该考虑使用基于 Java 的后端 JSP 等 而不是 PHP Python 或 Ruby 等脚本语言 听到 使用正确的工具 Java 什么时候是基于 Web 的项目的正确工具 什么是
  • 性能:条件测试与分配

    我创建了一个循环 其中使用变量来测试循环的当前运行是否是第一个循环 它相当简单 firstrun true while condition if firstrun Do this else Do that Change firstrun t
  • 未安装模拟器 - Android Studio

    我的 android studio 工作正常 有点慢 但工作正常 但是当我几天前启动它并尝试运行时 它开始向我显示错误 未安装模拟器 请帮我 找不到任何合适的解决方案 不用担心 只需打开 SDK Manager 在 Android Stud
  • Runtime.getRuntime().availableProcessors() 在容器优化操作系统上始终返回 1

    我正在 GCP 上的 kubernetes 引擎上部署 Elasticsearch 但遇到了性能问题 Elasticsearch根据核心数量确定各种线程池的大小 尽管我创建了一个 32 核 VM 但线程池大小仅为 1 我确实编写了一个测试程
  • 如何对 IP 地址列表进行排序并计算每个地址的类别和网络掩码? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有两个选择 一是我有一个包含 IP 列表的数组 例如 my Ip array that has the IPs below in it
  • AWS Glue 中 s3fs 库导入失败

    AWSglue不导入s3fs模块 import s3fs 我希望导入该库 但 AWSglue 说 导入错误 没有名为 s3fs 的模块 AWS Glue 作业预装了一些常用库 但除此之外 您还需要下载 whl对于 pypi 的库 在这种情况
  • Woocommerce 更改购买时的用户角色

    我正在尝试使用这段代码将我的用户从默认角色 订阅者 更新为从我的商店购买产品时的 高级 角色 add action woocommerce order status completed change role on purchase fun
  • 如何使用 GPU 使用 tf.lite.Interpreter(在 python 中)运行 tflite 模型 (*.tflite)?

    我已根据以下说明将张量流推理图转换为 tflite 模型文件 tflite https www tensorflow org lite convert https www tensorflow org lite convert 我在我的 G
  • Javascript - 字符串连接[重复]

    这个问题在这里已经有答案了 我有这个功能 javascript function popup mylink windowname w h if window focus return true var href if typeof myli
  • 如何记住终端中多个选项卡的会话? (类似于 FF 会话管理器)

    一个人如何 撤消关闭选项卡 在终端中 与它非常相关的是 是否有可能记住终端中的选项卡会话 我的意思是 与 Firefox 类似 如果我关闭特定终端窗口中的所有选项卡 第二天如何打开相同的选项卡 对于像我这样经常使用多个选项卡的人来说 记住终
  • 致命异常主要 Android 应用程序

    我目前正在开发 Android 应用程序 当我单击菜单时 菜单会显示 但如果您选择 首选项 它就会崩溃 如果您单击 新建 则效果很好 我不知道发生了什么事 我是 Android 应用程序开发和 eclipse IDE 的新手 所以任何东西都
  • 如何编写 Linux .dts 设备树文件?

    我要在我的开发板上启动Linux 我需要一个dts文件 设备树文件 来描述整个硬件 但我对这个文件的语法知之甚少 不足以在板上正确运行Linux 我现在所知道的只是如何描述一个单元的中断号 频率 地址 父单元及其兼容的驱动程序类型 如下所述
  • 如何在rails 2.3.3中有条件地分配ActionController::Base.session

    我有一个 Rails 应用程序 在 config initializers session store rb 文件中包含以下内容 ActionController Base session key gt app session secret