【问题标题】:Rails: losing quotes in post parametersRails:在帖子参数中丢失引号
【发布时间】:2011-03-05 11:26:47
【问题描述】:

我正在向我的 Rails 站点添加全文搜索,并允许用户在搜索输入框中输入双引号。问题是双引号似乎被 Mongrel 过滤掉了,所以我从来没有在 params 哈希的值中收到这些引号。我该如何防止这种情况发生?我正在运行 Rails 2.3.8。

[编辑:添加分析数据]

在 Firebug 中,我看到 post 参数用引号正确发布:

search_criteria "great post"

然而,在开发日志中,引号不见了:

处理 PostsController#search (for 127.0.0.1 在 2010-06-18 17:28:45) [POST] 参数: {"search_criteria"=>"很棒的帖子", "动作"=>"搜索", "authenticity_token"=>"xUaOc1IAyjQmKn1NGqBpPVaTBmD4ayPq/lUJsqJGCxY=", “控制器”=>“帖子”}

当我在控制器中记录 params[:search_criteria] 的内容和大小时,我得到:

search criteria = great post
search criteria size = 10

[编辑:新发现] 当引用的字符串尾随或前面有另一个字符时,不会发生上述问题,例如一个空格。

【问题讨论】:

  • 你确定他们被过滤掉了吗?您可以发布记录的 params 哈希吗?
  • 非常肯定,是的。查看添加的分析数据。

标签: ruby-on-rails mongrel rack


【解决方案1】:

This page 有关于如何通过您的应用源代码修补机架的分步说明;不需要弄乱宝石。它对我来说就像一个魅力(Rails 2.3.10)。

【讨论】:

    【解决方案2】:

    显然这是机架 1.1.0 中的一个错误。修复 [patch here] 适用于机架 1.2.0。但是,actionpack(因此,rails)2.3.6 到 2.3.10 依赖于 rack ~> 1.1.0,所以它们都有这个问题。

    最有可能实际发生的潜在解决方案首先排序...

    • 根据上述修复修补您的机架副本
    • 升级到 Rails 3

    This question 有关于如何修补机架的提示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-24
      • 2011-12-12
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      相关资源
      最近更新 更多