Rails:在post参数中丢失引号

时间:2010-06-18 14:44:31

标签: ruby-on-rails mongrel rack

我正在为我的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

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

2 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:0)

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