Forum: Ruby on Rails Multiple Updates, Multiple Renders, One Ajax Call

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Dc409a32dfcb23fa5aa3127a9087c8af?d=identicon&s=25 Stuart Halloway (Guest)
on 2006-03-22 17:08
(Received via mailing list)
The following code snippet allows you to update multiple DOM elements
in a single Ajax call in Rails (1.1):

   # pass in a hash of domid=>template name
   def update_many(options)
     render :update do |page|
       options.each do |k,v|
         page.replace_html k, render(:partial=>v)
         page.visual_effect :highlight, k
       end
     end
   end

So, if you wanted to update the preview div from the content partial,
and the status div from the status partial, you could now say:

   update_many 'preview'=>'content', 'status'=>'status'

Notice that I appear to be breaking the rules, in that I am calling
render multiple times (once for each item in the option hash). I
expected to have to call render_to_string instead, but that blows up,
and this works fine.

Is this behavior by design, or a coincidence? I?d like to get this
documented and make sure that it is considered a feature.

Regards,
Stuart Halloway
www.relevancellc.com

P.S. Is there a totally better way to do this that I missed? :-)
Dc409a32dfcb23fa5aa3127a9087c8af?d=identicon&s=25 Stuart Halloway (Guest)
on 2006-03-22 17:50
(Received via mailing list)
Hah -- nevermind, nothing like hitting 'send' to make you see the
right answer. I see now that I can use the :partial option directly
without calling render at all.
This topic is locked and can not be replied to.