我正在为我的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”=>“很棒的帖子”, “action”=>“search”,“authenticity_token”=>“xUaOc1IAyjQmKn1NGqBpPVaTBmD4ayPq / lUJsqJGCxY =”, “控制器”=> “中的帖子”}
当我在控制器中记录params [:search_criteria]的内容和大小时,我得到:
search criteria = great post
search criteria size = 10
[编辑:新发现] 当引用的字符串被跟踪或以另一个字符开头时,例如,上面描述的这个问题不会发生。一个空间。
答案 0 :(得分:3)
显然这是机架1.1.0中的错误。修复[patch here]是为机架1.2.0制作的。但是,actionpack(以及因此,rails)2.3.6到2.3.10取决于rack~> 1.1.0,所以他们都有这个问题。
最有可能实际发生的潜在解决方案首先被排序......
This question有关于如何修补机架的提示。
答案 1 :(得分:0)
This page提供了有关如何通过应用源代码修补机架的分步说明;不要乱搞宝石。它对我来说就像一个魅力(Rails 2.3.10)。