Rails:在post参数中丢失引号

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

[编辑:添加分析数据]

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

search_criteria "great post" 

但是,在开发日志中,引号已经消失:

处理PostsController #search(适用于2010-06-18 17:28:45的127.0.0.1)[POST]参数:{“search_criteria”=>“great post”,“action”=>“search”,“authenticity_token”= >“xUaOc1IAyjQmKn1NGqBpPVaTBmD4ayPq / lUJsqJGCxY =”,“controller”=>“posts”}

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

 search criteria = great post search criteria size = 10 

[编辑:新发现]当引用的字符串被跟踪或以另一个字符(例如空格)开头时,不会发生上述问题。

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

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

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

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

此页面提供了有关如何通过应用源代码修补机架的分步说明; 不要乱搞gem。 它对我来说就像一个魅力(Rails 2.3.10)。