>From the Hobo Cookbook, description of
"Using parts on repeated elements" by Tom:


/***************************/

The basics

Hobo’s part mechanism makes it very easy to have parts of the page
updates “ajax” style. All you do is add the part attribute to a tag
somewhere:

<div part="my-part">
  ... this section can be updated without reloading the page
</div>

Then use the update attribute, which is supported by various Rapid
tags, invcluding <form>

<form update="my-part"> ... <submit label="Go!"/></form>

The presence of the update tells Rapid to generate an ajax form. When
the use clicks that “Go!” button, the form is submitted in the
background, the content “my-part” is re-rendered on the server, and
the new content is placed onto the page.

/***************************************/


The above is definitely not working as described. There should be a
more complete description of what is necessary to make
this work. In fact, if I use

   update="my-part"

as described above in the Cookbook, my part does not get updated. If I
have

   <div id="mydiv" part="my-part">

and then

   <form update="mydiv">

my form does get updated. So either I have something quirky going on,
or the documentation example I quoted should
be changed.

Cheers,

   Jet


Cheers,

   Jet

On Sep 2, 12:50 am, blueHandTalking <[email protected]> wrote:
> Code generated by the 2 forms:
>
> BELOW IS FORM WITH AJAX---update="imgmain":
>
> <form action="/photos"
>       class="new photo"
>       enctype="multipart/form-data"
>       method="post"
>       onsubmit="Hobo.ajaxRequest(this, ['imgmain']); return false;">
>
>   <div class="hidden-fields">
>     <input id="page_path" name="page_path" type="hidden"
> value="projects/new" />
>     <input name="authenticity_token" type="hidden" value="gA7U/
> n2koCKgZxpPdJrQtQgeCwZXwu2m7hPnEZ++JYE=" />
>     <input id="photo_user_id" name="photo[user_id]" type="hidden"
> value="14" />
>   </div>
>   <table class="field-list">
>     <tr>
>       <th class="mainimg-label">
>           Mainimg
>       </th>
>       <td class="mainimg-view">
>           <input class="mainimg-tag paperclip--attachment photo-
> mainimg" id="photo_mainimg" name="photo[mainimg]" type="file" />
>       </td>
>     </tr>
>   </table>
>         <div class="actions">
>     <input class="button submit-button" type="submit" value="Save" />
>   </div>
>         <input name="after_submit" type="hidden" value="stay-here" />
> </form>
>
> The above does not save the image file, only a null object. Paperclip
> does
> not confirm the image was saved
>
> BELOW IS FORM WITHOUT AJAX:
>
> <form action="/photos"
>   class="new photo"
>   enctype="multipart/form-data"
>   method="post">
>
>   <div class="hidden-fields">
>     <input id="page_path" name="page_path" type="hidden"
> value="projects/new" />
>     <input name="authenticity_token" type="hidden" value="gA7U/
> n2koCKgZxpPdJrQtQgeCwZXwu2m7hPnEZ++JYE=" />
>     <input id="photo_user_id" name="photo[user_id]" type="hidden"
> value="14" />
>   </div>
>   <table class="field-list">
>     <tr>
>       <th class="mainimg-label">
>         Mainimg
>       </th>
>       <td class="mainimg-view">
>         <input class="mainimg-tag paperclip--attachment photo-mainimg"
> id="photo_mainimg" name="photo[mainimg]" type="file" />
>       </td>
>     </tr>
>   </table>
>         <div class="actions">
>     <input class="button submit-button" type="submit" value="Save" />
>         </div>
>           <input name="after_submit" type="hidden" value="stay-here" />
> </form>
>
> The above correctly saves the image file. Paperclip confirms the image
> file was saved.
>
> As you can see, they are identical except for:
>
>    onsubmit="Hobo.ajaxRequest(this, ['imgmain']); return false;"
>
> So why is the above Hobo.ajaxRequest not reading the data from:
>
>    <input class="mainimg-tag paperclip--attachment photo-mainimg"
> id="photo_mainimg" name="photo[mainimg]" type="file" />
>
> ?
>
> The object is saved, but with Null fields, so for some reason the file
> input field is empty when submitted with the
> Hobo.ajaxRequest.
>
> If this is really a bug, I would be interested in hearing alternate
> solutions on updating my partial with the image file
> that has just been uploaded. I have made a couple attempts, but they
> broke the image file being saved.
>
> Thanks for looking at this.
>
> Cheers,
>     Jet
>
> On Sep 1, 6:57 pm, blueHandTalking <[email protected]> wrote:
>
> > I am getting back to an earlier post:
>
> >     "Understanding the Hobo <form>
>
> > In that I mentioned being unable to get a form to post to the database
> > when update is used with a Paperclip attachment. I am using the
> > paperclip
> > plugin and the paperclip_with_hobo plugin.
>
> > When I use this form:
>
> > <form   with="&[email protected]" >
> >      <field-list:  fields="mainimg" />
> >      <actions: />
> > </form>
>
> > The image is saved to the database, and I stay on the current page,
> > because I have <after-submit stay-here /> in my form:
>
> > <def tag="form" for="Photo">
> >    <form merge multipart param="default">
> >         param="photo-object"/>  -->
> >         <error-messages param/>
> >         <field-list  fields="mainimg,lwrimg,uprimg" param/>
> >         <div param="actions">
> >            <submit label="Save" param/>    <!--<or-cancel param="cancel"/> 
> > --
>
> >         </div>
> >         <after-submit stay-here />
> >    </form>
> > </def>
>
> > I am trying to upload an image file and save it to d.b., and then load
> > that image into a <div>
> > on the page:
>
> > <div id="imgmain" part="photomain">
> >    <%= render :partial => 'photos/mainphoto'%>
> > </div>
>
> > This is the partial:
>
> >   <%= (@photo == nil) ? '<img src="/images/main_tmp_display.jpg" />' :
> > image_tag @photo.mainimg.url %>
>
> > The syntax must be wrong for
>
> >    image_tag @photo.mainimg.url
>
> > because it generates an error.  I could use help on that.
>
> > But back to the form issue, if I change the form to:
>
> > <form   with="&[email protected]"  update="imgmain" >
> >      <field-list:  fields="mainimg" />
> >      <actions: />
> > </form>
>
> > The image file does not get saved to the database.
> > I appreciate the suggestions from Kevin and Bryan,
> > but the examples you mentioned were not photos.
> > Text updating does work. It appears that images do not.
> > I believe that something is broken in regard to saving images,
> > or there is some information I have missed. However, in the
>
> > Notice that I am passing an instance of @project.photo to the form.
> > I am creating that in the project controller. The form without the
> > 'update' correctly saves the photo, but the form with update does not.
> > Do I need to pass the @project.photo instance in the params hash?
>
> > I am now using a dynamic <div> with a partial, so that would satisfy
> > the
> > condition Kevin mentioned about the content being static.
>
> > What I am really looking for is a solution. If update is broken with
> > images,
> > what are some suggestions for an alternative? I have tried an rjs
> > approach,
> > but get directed to a 'photo' page instead of reloading the 'projects/
> > new' page.
>
> > If anyone has example or has been successful in uploading an image,
> > then
> > updating a partial with that image using Paperclip, I really would
> > like to
> > hear about it.
>
> > Cheers,
>
> >    Jet
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/hobousers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to