我在普通的POST表单中使用普通textarea
来选择标记文本。用户应该能够输入双换行符来标记新段落。现在浏览器确实发送换行符(如CRLF),但Rails在参数过滤期间用一个空格替换每个换行符,所以我不能
params[:lines].split '\n'
在我的控制器中,因为它总是给我一个包含一个元素的数组。例如。对于值为'abc%0d%0a%0d%0adef'
的HTTP参数,params[:lines]
为'abc def'
(两个空格),因此我无法检测到这些双重换行符。我怎样才能避免这种特定的过滤?
我正在使用Rails 3.1。
编辑:请参阅下面的评论以获得答案--Rails与此问题无关,但我的无知确实如此。
答案 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'。