socketry / multipart-post

Adds multipart POST capability to net/http
MIT License
293 stars 72 forks source link

Does this support nested params? #27

Open prathamesh-sonpatki opened 11 years ago

prathamesh-sonpatki commented 11 years ago

I want to send some nested params with the file. Is it not getting send properly.

For example

     sub_params = { contact: { 'first_name' => 'prathamesh', 'language' => 'Ruby' } }
     params     = sub_params.merge({ "file" => UploadIO.new(csv, "text/csv", "test.csv") })
     request    = Net::HTTP::Post::Multipart.new(url.path, params)     

On Rails side, i get

Parameters: {"contact"=>"{\"first_name\"=>\"prathamesh\", \"language\"=>\"Ruby\"}", "file"=>#<ActionDispatch::Http::UploadedFile:0x0000000628cea8 ....}

Nested attributes first_name and language are delimited. But they should be not.

Right now, parts are created assuming that value is String. So it is failing here where value is Hash like in case of nested hash.

nicosantangelo commented 11 years ago

I would like this to be implemented too, but you could do something like this:

     sub_params = { :'contact[first_name]' => 'prathamesh', :'contact[language]' => 'Ruby' }
     params     = sub_params.merge({ "file" => UploadIO.new(csv, "text/csv", "test.csv") })
     request    = Net::HTTP::Post::Multipart.new(url.path, params)

to get the desired params in Rails.

gernberg commented 11 years ago

@NicoSantangelo / @prathamesh-sonpatki , if you just continue the work I did i my pull request (https://github.com/nicksieger/multipart-post/pull/30) I think you can solve this pretty easy :-)

ioquatix commented 7 years ago

It would be good to support this. PR welcome.