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)。