From: Michael Guterl Date: 2008-11-28T21:24:50+09:00 Subject: Re: Rest-client posting multipart to rails 2 On Fri, Nov 28, 2008 at 4:34 AM, e deleflie wrote: > On Fri, Nov 28, 2008 at 8:26 PM, Einar Magnús Boson > wrote: >> Hi, >> >> On 28.11.2008, at 09:14 , e deleflie wrote: >> >>> Hi all, >>> >>> I'm using rest-client (in a Shoooes app) to post a multi-part form to >>> my rails server. I've been struck down by a gotcha (which may not be a >>> gotcha for non-newbies). >>> >>> What I want to do is post an image file within the form. Examples show >>> that the correct syntax is such: >>> >>> params = {'myObject[name]' => "some name", >>> 'myObject[details]' => "some extra >>> details and stuff here.", >>> :myObject[image] => >>> File.new('/baa/baa/screen-capture-1.png') >>> } >>> response = RestClient.post >>> "http://me:mine@www.example.com/myObject.xml", params >>> >>> >>> but :myObject[image] is not a valid symbol ... and that's how rails >>> creates the names of the fields in the forms ... >>> >>> Any ideas? >>> >>> Etienne >>> >> >> >> Your two first parameters have strings as keys, not symbols. > > yeah, but that seems to work fine ... > > I worked out I can do :"myObject[image]" => > File.new('/baa/baa/screen-capture-1.png') but that still doesn't ... > it creates the below message in Rails: > > UploadColumn::UploadNotMultipartError (Do not know how to handle a > string with value '(File /baa/baa/screen-capture-1.png)' that was > uploaded. Check if the form's encoding has been set to > 'multipart/form-data'.): > Perhaps you want to stick the contents of that file in the "myObject[image]" param? If so File.new is not going to do it. Try File.read('/baa/baa/screen-capture-1.png') HTH, Michael Guterl