# Ajax

**URL:** <https://www.ruby-forum.com/t/ajax/90886>\
**Category:** Rails\
**Created:** [April 2, 2007, 7:21pm UTC](https://www.ruby-forum.com/t/ajax/90886 "2007-04-02T19:21:25Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![mick](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/f04885/32.png) [@mick](https://www.ruby-forum.com/u/mick)\
**Post date:** [April 2, 2007, 7:21pm UTC](https://www.ruby-forum.com/t/ajax/90886/1 "2007-04-02T19:21:25Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![mick](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/f04885/32.png) [@mick](https://www.ruby-forum.com/u/mick)\
**Post date:** [April 2, 2007, 7:41pm UTC](https://www.ruby-forum.com/t/ajax/90886/2 "2007-04-02T19:41:02Z")

</div>

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’  
end  
end

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

Greetz,

Joram

---

<div class="post-metadata">

**Author:** ![mick](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/f04885/32.png) [@mick](https://www.ruby-forum.com/u/mick)\
**Post date:** [April 2, 2007, 7:42pm UTC](https://www.ruby-forum.com/t/ajax/90886/3 "2007-04-02T19:42:02Z")

</div>

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  
javascript  
that gets executed on the client (the {executeScripts: true} of  
Prototype).

Some info is also available on the api page:  
[http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper/JavaScriptGenerator/GeneratorMethods.html#M000559](http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper/JavaScriptGenerator/GeneratorMethods.html#M000559)

You can write RJS in your controller or as a partial

\_partial\_name.rjs

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

Jason

---

<div class="post-metadata">

**Author:** ![mick](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/f04885/32.png) [@mick](https://www.ruby-forum.com/u/mick)\
**Post date:** [April 2, 2007, 7:49pm UTC](https://www.ruby-forum.com/t/ajax/90886/4 "2007-04-02T19:49:03Z")

</div>

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  
:update  
will not update more than one element.

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

Best regards,  
Bill

---

<div class="post-metadata">

**Author:** ![mick](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/f04885/32.png) [@mick](https://www.ruby-forum.com/u/mick)\
**Post date:** [April 2, 2007, 9:57pm UTC](https://www.ruby-forum.com/t/ajax/90886/5 "2007-04-02T21:57:53Z")

</div>

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

cheers

Mick
