Rails:ParameterFilter::compiled_filter 尝试复制符号

2023-11-23

我正在使用 Rails 异常通知程序 gem 运行 Rails3。当发生异常并且应该发送电子邮件时,我从 ParameterFilter 类收到异常。我在 Rails 源代码中发现了问题,但不确定继续的最佳方法。

问题出现在 ActionDispatch::Http::ParameterFilter 中。在compile_filter方法中,第38行出现错误:key = key.dup when key是一个符号,因为符号是不可重复的。这是来源:

def compiled_filter
    ...
    elsif blocks.present?
        key = key.dup
        value = value.dup if value.duplicable?
        blocks.each { |b| b.call(key, value) }
    end

我看到他们只打电话dup on value几时duplicable。如果我将源修补为仅调用dup on key when key is duplicable,那么我的问题就消失了。我假设作者提出这个条件是有原因的value并不是key,所以我很好奇是否有人对这段代码有更好的理解。

仅当您将块添加到 application.rb 中的过滤器参数时,才会发生此错误。因此,也许我原来的问题有一个解决方法,不需要在这里使用块。有兴趣的话可以看看我同事的问题Rails:从日志中过滤 JSON 参数中的敏感数据

造成这个问题的关键是:action。这来自 Rails,我不知道是否有任何方法可以强制它成为字符串。

我提交了一个 Rails 错误https://rails.lighthouseapp.com/projects/8994/tickets/6557-symbol-duplication-error-in-parameterfilter-compiled_filter我已经准备好了一个补丁,添加了 ifkey.duplicable? to the key.dup行,我正在寻找有关这是否是正确解决方案的意见。


这看起来像是 Rails 中的一个错误。键应该是字符串而不是符号,或者dup应受到保护duplicable?.

您应该在以下位置提交错误:https://rails.lighthouseapp.com/,如果可能的话包括一个最小的测试用例。

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

Rails:ParameterFilter::compiled_filter 尝试复制符号 的相关文章

  • Rails 3 默认作用域、可覆盖的作用域

    我遇到的情况是现有应用程序的行为正在发生变化 这让我非常头疼 我的应用程序有照片 照片有一个状态 batch queue or complete 应用程序中的所有现有照片都是 完整的 99 的情况下 我只需要显示完整的照片 并且在所有现有代
  • 如何使用 Nokogiri 获取某些标签之后或之前的文本

    我有一个 HTML 文档 如下所示
  • 强参数不起作用

    使用 Ruby 1 9 3 Rails 3 2 13 Strong parameters 0 2 1 我遵循了教程和railscasts中的每一个指示 但我无法让strong parameters工作 这应该是非常简单的事情 但我看不出错误
  • 如何在 Ruby on Rails 中不使用 eval 将字符串转换为哈希值? [复制]

    这个问题在这里已经有答案了 这里是string需要转换成hash status gt label gt Status collection gt return misc definitions project status 我们不能使用ev
  • 类、模块、它们的特征类和方法查找

    我们来开公开课吧Module并向其中添加一个方法 class Module def foo puts phew end end 我可以通过这样做来调用这个方法 Class foo 这是可以理解的 因为类Class is Class 其超类是
  • 如何将两个不同的哈希数组中的值添加在一起?

    我有两个哈希数组 哈希值的键不同 player scores1 first name gt Bruce score gt 43 time gt 50 first name gt Clark score gt 45 minutes gt 20
  • 红宝石边缘情况

    ruby 有一些边缘情况很难解释 因为解析会带来一些有趣的问题 我在这里列出其中两个 如果您知道更多 请添加到列表中 def foo 5 end this one works if tmp foo puts tmp to s end How
  • 如何在rails3中渲染编辑视图并发布Flash消息

    在我的帐户控制器中 我想在保存更改后显示 渲染 redirect to 编辑视图并显示闪存通知 def update account Account find params id respond to do format if accoun
  • Rails 查询返回属于任何城市和不属于任何城市的用户

    I have Many to Many Associations两个表之间 对于前用户和城市 users id name 1 Bob 2 Jon 3 Tom 4 Gary 5 Hary cities id name 1 London 2 N
  • 通过推送通知唤醒

    Suppose 有一些对象 例如 一个数组a 和依赖于对象的条件 例如 a empty 当前线程以外的某些线程可以操作该对象 a 因此条件评估值的真实性会随着时间的推移而变化 如何让当前线程在代码中的某个时刻休眠 并在条件满足时通过推送通知
  • 创建一个简单的 Rails 3 文本助手 Gem [重复]

    这个问题在这里已经有答案了 我一直在开发我的第一个 Rails 3 插件 以打包一个我喜欢在ApplicationHelper我所有的应用程序 你可以看到整个代码在 Github 上 https github com burlesona s
  • Ruby 中的任务/未来

    代表潜在延迟的异步计算并且可以订阅其完成的模式的惯用 Ruby 模拟是什么 即类似于 NET 的东西System Threading Task 或Python 3 xconcurrent futures future 请注意 这并不一定意味
  • 如何从 ruby​​ 中的字符串名称创建类实例?

    我有一个类的名称 我想创建该类的一个实例 以便我可以循环该类的架构中存在的每个 Rails 属性 我该怎么做呢 我的名称是我想要检查的类的字符串 我想我需要实例化一个类实例 以便我可以 循环遍历它的属性并打印它们 在 Rails 中你可以这
  • 如何从引擎覆盖 Rails 应用程序路由?

    我有一个 Rails 应用程序 我正在尝试将 Rails 引擎集成到其中 主机应用程序有一些捕获所有路由 magic urls match gt admin rendering show match path edit gt admin r
  • 使用 VCR 过滤敏感数据

    我正在使用 VCR gem 记录 http 交互并在将来重播它们 我想过滤掉 uri 请求中的实际密码值 以下是 uri 的示例 http services somesite com Services asmx Cabins Usernam
  • 使用 attr_accessor 动态创建类属性

    在Ruby中 有没有办法动态地将实例变量添加到类中 例如 class MyClass def initialize create attribute name end def create attribute name attr acces
  • 为什么 RackMultipart* 文件保留在我的 Rails /tmp 目录中?

    我正在使用 Paperclip 2 3 来处理在 Ubuntu 上运行的 Rails 3 0 3 应用程序上的图像上传 Paperclip 正在按广告处理上传 但在应用程序的 tmp 文件夹中创建的 RackMultipart 文件仍然存在
  • “rmagick”gem 安装问题

    我在尝试在 centos 上安装 rmagick gem 时遇到问题 以下是我得到的输出 谁能帮我识别一下我缺少什么包裹 我已经安装了所有提到的另一个堆栈溢出线程 RMagick安装错误 https stackoverflow com qu
  • 我在 Rails 中使用了保留字吗?

    这是我的模型 class Record lt ActiveRecord Base belongs to user belongs to directory end class Directory lt ActiveRecord Base h
  • Rails - 渲染:目标锚标记的操作?

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

随机推荐

  • 警告 MSB3391: 不包含任何可以为 COM 互操作取消注册的类型

    我使用 VS2005 制作了一个简单的 C DLL 这是一个更大项目的一部分 我需要通过 VBA 代码在 Excel 中使用 DLL 因此我在程序集上使用 COM Interop 我是试图让构建过程自动生成必要的TLB文件这样我就不需要在每
  • Android-从活动启动另一个应用程序[重复]

    这个问题在这里已经有答案了 我想创建一个在单击按钮时启动外部应用程序 例如 Shazam 的活动 是否可以 如何做呢 Thanks 您需要其他应用程序包名称 如果您安装了此应用程序 可以使用 adb 检查 adb shell cmd 软件包
  • .NET 6 问题:承载错误=“invalid_token”

    我正在使用 NET 6 构建 API 但遇到了这个错误 我通过登录获得了一个令牌 然后将该令牌添加到标头中 但总是出现 401 未经授权的错误 注意 我收到 Bearer error invalid token 但是没有描述 这是我的代码
  • 如何让 Php 的stream_socket保持活动状态?

    我有一个使用stream socket client 的Php应用程序 通过tcp从后端服务器获取数据 但希望保持连接处于活动状态 甚至更好地放在池或其他东西中 以避免连接 断开连接的开销 但我不是 PHP 大师 所以我不知道如何做到这一点
  • 如何使用 Checkstyle 停止 Maven 构建

    我已经成功地使用 Maven 和 Checkstyle 插件 并且可以创建关于我的代码的报告 但我真正想要的是 如果样式检查出现任何错误 我可以停止 Maven 的构建过程 到目前为止我的pom xml如下所示
  • 为什么我会在 IE8 中触发怪异模式?

    我正在开发一个页面 当我加载到 IE8 并查看开发人员工具时 它告诉我页面默认为怪异模式 我有一个严格的 DTD 我什至继续进行明确的标准切换 尽管我认为我不需要这样做 我不明白为什么页面默认不是 IE8 标准 我唯一能想到的是 要访问此页
  • 全局隐藏光标(来自后台应用程序)

    我想从状态栏应用程序中隐藏光标 并且我已经做了一些研究 似乎不久前就找到了这个问题的解决方案 在 Cocoa Carbon 中全局隐藏鼠标光标 or http lists apple com archives carbon dev 2006
  • 如何解构 SNat(单例)

    我正在 Haskell 中试验依赖类型 并在paper 单身人士 包的 replicate2 forall n a SingI n gt a gt Vec a n replicate2 a case sing Sing n of SZero
  • HTML 模板 + JSON 与服务器 HTML

    你认为什么更好 用于 Ajax 结果 在服务器上生成的 HTML 返回将在模板中使用的数据 我认为 当需要大量数据时 服务器渲染的加号正在转义 更容易实现更复杂的逻辑 两种方法都有优点和缺点 从服务器返回 JSON 或 XML 并使用 ja
  • 如何将构造函数映射与 Spring JPA 存储库结合使用

    我有一个 Spring 存储库 如下所示 import org springframework data repository Repository import org springframework stereotype Compone
  • Git 通常会在安装的驱动器上卡住吗?或者只是 Git GUI 的?

    我知道我应该顽固地在终端中使用 git 但我在 Mac 上使用名为 Sourcetree 的 Git 客户端 让整个事情变得更加性感 问题是我添加到设置中的新 Synology NAS 驱动器 当我的 Mac 上安装了 NAS 共享文件夹之
  • 如何在基于 NSDocument 的 Cocoa 应用程序中使用 NSViewController

    我对 iOS 有丰富的经验 但 Cocoa 让我有点困惑 我阅读了几个关于 Cocoa 的 Apple 文档 但仍然有一些细节我无法在任何地方找到 似乎文档是在基于 NSDocument 的 Xcode 模板更新为使用 NSViewCont
  • Java、Spring、Apache Tiles 错误:无法解析名为“dispatcher”的 servlet 中名为“index”的视图

    我是 Tiles 和 Spring MVC 的新手 我查看了几个类似的问题 但没有找到 我的问题 的解决方案 控制器 Controller public class IndexController RequestMapping index
  • 如何在 MiniZinc 中安装 Google 的 CP 求解器 OR-Tools?

    我目前正在研究 MiniZinc 并且我一直在使用 MiniZinc 中集成的两个求解器来运行我的模型 Gecode 和 Chuffed 我一直在 IDE 中运行它 但我知道它也可以在 bash 中运行 使用minizinc命令 但我想测试
  • vb.net 对象初始值设定项列表(T 的)

    我一直在看一些 C 代码 List
  • 为什么文本环绕浮动元素而不是像另一个 div 一样位于下方?

    我试图更深入地了解 CSS 我注意到当div漂浮在其下方的其他元素 对于环绕它的文本来说 情况并非如此 怎么会 这是设计使然 因为这就是浮动的工作原理 如果您参考文档 float CSS 属性将元素放置在其容器的左侧或右侧 允许文本和环绕它
  • 使用 Graph API v.2.0 获取 Facebook 好友 [重复]

    这个问题在这里已经有答案了 前段时间 我曾经带朋友这样使用Graph API 使用Graph API Explorer me friends 一切都很完美 但现在 在 2 0 版本中 我发现这种方式对于那些没有使用 通过 Facebook
  • 查找无向图中的所有循环

    如果我有一个无向图 如何获得所有循环的列表 例如 从下图中 我想要循环 a b d e c a b c b d e 这在多项式时间内是不可能的 如果可能的话 我们可以用它来找到所有循环 从而找到最大长度的循环 这意味着我们可以在多项式时间内
  • 如何实现Openid connect和Spring Security

    我是身份验证和授权的初学者 但我必须在工作中连接到 openid 连接提供商 我对如何使用 Spring Security 有所了解 首先 我通过遵循良好的方向获得了 UserInfo 对象 https oauthssodemo appsp
  • Rails:ParameterFilter::compiled_filter 尝试复制符号

    我正在使用 Rails 异常通知程序 gem 运行 Rails3 当发生异常并且应该发送电子邮件时 我从 ParameterFilter 类收到异常 我在 Rails 源代码中发现了问题 但不确定继续的最佳方法 问题出现在 ActionDi