有没有解析json多部分表单的Rails?

时间:2012-07-16 15:04:23

标签: ruby-on-rails ruby-on-rails-3 json curl multipart

我在解决为什么Rails 3.2.6正在解析包含json的多部分POST请求时遇到了一些麻烦。

'冒犯'卷曲命令:

curl -i -X POST --silent http://localhost:3000/foo.json --form foo='{"name":"bar"};type=application/json'

Rails解释为:

p params[:foo] #=> "{\"name\":\"bar\"}"

注意值是字符串,而不是散列(解析的JSON)。

curl发送的标题似乎是正确的:

> POST /foo.json HTTP/1.1
> User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5
> Host: localhost:3000
> Accept: */*
> Content-Length: 208
> Expect: 100-continue
> Content-Type: multipart/form-data; boundary=----------------------------959d0620faa3

多部分的类型似乎也是正确的:

------------------------------959d0620faa3
Content-Disposition: form-data; name="foo"
Content-Type: application/json

{"name":"bar"}
------------------------------959d0620faa3--

有人可以帮我理解到达params [:foo]返回解析的json哈希的地方的最佳方式,而不是它的字符串表示吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

Rails默认不解析json参数,你必须手动完成。