Rest-client posting multipart to rails 2

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

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.

einarmagnus

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'.):

Etienne

···

On Fri, Nov 28, 2008 at 8:26 PM, Einar Magnús Boson <einarmagnus@tistron.se> 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&quot;, 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.

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

···

On Fri, Nov 28, 2008 at 4:34 AM, e deleflie <edeleflie@gmail.com> wrote:

On Fri, Nov 28, 2008 at 8:26 PM, Einar Magnús Boson > <einarmagnus@tistron.se> 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&quot;, 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'.):