That would make for a great recipe on http://cookbook.hobocentral.net/
On Sep 18, 10:51 am, blueHandTalking <[email protected]> wrote: > Here is one way of getting Paperclip to do a simulated Ajax upload, > and also displaying uploaded image in the current page. It uses the > method of targeting an iframe for the post, then uses > responds_to_parent plugin to update page with rjs. > > The pieces used in test application: > > +) Paperclip: http://github.com/thoughtbot/paperclip > > +) Gert Thiel's fork of Tom's paperclip_with_hobo: > > http://github.com/GertThiel/paperclip_with_hobo/commit/3013fbd0eefdf2... > > Gert also has some good suggestions on setting up the form. > > +) Mark Catley's responds_to_parent: Necessary for the 'Ajaxy' upload > and rjs part: > > http://github.com/markcatley/responds_to_parent > > My example is based on a test application where there is a > Job class that has_one Photo, > and the Photo belongs_to the Job. I am uploading > photo from a job page, then displaying it in the same page > using responds_to_parent. > > Install the plugins, following guidelines from above references. Be > sure to put > > <include src="paperclip" plugin="paperclip_with_hobo"/> > > in your application.dryml. > > Define your form: > > <def tag="form" for="Photo"> > <form merge multipart param="default"> > <error-messages param/> > <field-list fields="myimg" param/> > <div param="actions"> > <submit label="Save" param/> > </div> > </form> > </def> > > ...create instances in JobsController 'new' > > @job = Job.new > @job.user = current_user > @photo = @job.build_photo > > Call to form: > > <form target="jobdummy" with="&[email protected]" action="/photos/ > upload_main" > > <field-list: fields="myimg" /> > </form> > > Div to be updated: > > <div id="photohere" part="photopart"><img src="temp.jpg" /></div> > > Iframe targeted in form: > > <iframe id="jobdummy" name="jobdummy" style="width:0px;height: > 0px;top:3000px"></iframe> > > PhotosController method called by form: > > def upload_main > @photo = Photo.find_by_job_id(params[:photo][:job_id]) > if @photo != nil # this check done if multiple photos are saved > to the same record > �[email protected]_attributes(params[:photo]) > else > @photo = Photo.new(params[:photo]) > end > if �[email protected] > responds_to_parent do > render :action => 'jobPhoto.rjs' > end > end > end > > Content of jobPhoto.rjs, to update parent of <iframe> with image > that was just uploaded: > > page[:photohere].replace_html("<img [email protected]}' />") > > That's it, any comments on improving appreciated . > > 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 -~----------~----~----~----~------~----~------~--~---
