Hi guys,

I’ve got a little problem relating to Ajax and Rails, namely updating
multiple divs!

I have created a message inbox for a system I’ve developed, and when a
user clicks on a message, I want the number of read messages to decrease
by one (this is displayed in 2 divs in separate locations on the page),
and I don’t think the :update => ‘mydiv’ in ‘link_to_remote’ can cope
with more than one div,

I have looked at the example in the pick-axe (Chapter 18, page 403-404)
but it doesn’t seem to make much sense!

Any help is appreciated!

Cheers, Mick

If you want to update more than one div, rjs is the best way to go.

For example

def some_method
//some stuff
render :update do |page|
page.replace_html ‘div1’, :partial => ‘partial1’
page.replace_html 'div2, :partial => ‘partial2’

Or you can put these calls in a rjs file (which has precedence over
a .rhtml file).



If you have access to Agile with Rails v. 2, it has a good tutorial on
what’s called RJS templates. Basically, you use Ruby to write out
that gets executed on the client (the {executeScripts: true} of

Some info is also available on the api page:

You can write RJS in your controller or as a partial


Note: if you do this, you must not use :update, or the resulting
will be printed to the page.


Hi Mick,

Mick wrote:

I’ve got a little problem relating to Ajax and Rails,
namely updating multiple divs!

Joram is correct. You want to use RJS. And you are correct. The
will not update more than one element.

I highly recommend Cody F.'s RJS Tutorial on O’Reilly. It’s a $10
that’s well worth the money and will have you productive and feeling
comfortable in a couple of hours.

Best regards,

Thanks everyone, you’ve all been more than helpful,