如何避免在Rails中从POST参数中删除换行符?

时间:2011-11-16 11:41:33

标签: ruby-on-rails textarea

我在普通的POST表单中使用普通textarea来选择标记文本。用户应该能够输入双换行符来标记新段落。现在浏览器确实发送换行符(如CRLF),但Rails在参数过滤期间用一个空格替换每个换行符,所以我不能

params[:lines].split '\n'

在我的控制器中,因为它总是给我一个包含一个元素的数组。例如。对于值为'abc%0d%0a%0d%0adef'的HTTP参数,params[:lines]'abc def'(两个空格),因此我无法检测到这些双重换行符。我怎样才能避免这种特定的过滤?

我正在使用Rails 3.1。

编辑:请参阅下面的评论以获得答案--Rails与此问题无关,但我的无知确实如此。

1 个答案:

答案 0 :(得分:1)

在控制器中(参数为:search =“abc%0d%0a%0d%0adef”)

p params.inspect
p params[:search].inspect

给出:

{"action\"=>"index", "controller"=>"my_controller", "search"=>"'abc\r\n\r\ndef'"}"
"'abc\r\n\r\ndef'"

这意味着它正好通过控制器。你在哪里看到间隔版?因为如果你“去”它,它只会显示为'abc def'。