2013-09-25 72 views
4

我有一個文件「5.json」,看起來像:Rails控制器如何解析JSON並自動嵌套參數?

{"id": "5","name": "test"}. 

沒有根節點。當我運行curl:

curl -v -H "Content-Type: application/json" -X PUT --data "@5.json" http://localhost:3000/todos/5 

導軌自動地提供這些PARAMS控制器:

Parameters: {"id"=>"5", "name"=>"test"}, "todo"=>{"name"=>"test"}} 

任何人都可以指出我爲什麼/如何導軌自動嵌套下的參數「待辦事項」的JSON?我喜歡它 - 只是希望我知道爲什麼/如何。看着action_dispatch/middleware/params_parser並沒有看到任何內容。

的Rails 3.2.14

路由條目只是看起來像

resources :todos 

回答

4

啊,只是覺得:這裏所描述action_controller /金屬/ params_wrapper.rb: http://edgeapi.rubyonrails.org/classes/ActionController/ParamsWrapper.html

,我確確實實有一個wrap_parameters.rb配置爲:json。

+0

現在問題是,它是如何知道要包裝哪些參數?除了標準的模型屬性,我可以添加一些參數嗎? – akostadinov

+0

發現一個有關非理想但有意義的答案的問題:http://stackoverflow.com/questions/19286962/how-to-add-extra-virtual-attribute-to-wrap-parameters – akostadinov