3

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

[编辑:添加分析数据]

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

search_criteria "great post"

然而,在开发日志中,引号消失了:

处理 PostsController#search (for 127.0.0.1 at 2010-06-18 17:28:45) [POST] 参数:{"search_criteria"=>"great post", "action"=>"search", "authenticity_token"= >"xUaOc1IAyjQmKn1NGqBpPVaTBmD4ayPq/lUJsqJGCxY=", "控制器"=>"帖子"}

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

search criteria = great post
search criteria size = 10

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

4

2 回答 2

3

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

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

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

这个问题有关于如何修补机架的提示。

于 2010-12-14T18:33:38.837 回答
0

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

于 2011-04-11T17:12:19.393 回答