RJS page.update question


#1

How does page.update actually work? I know its a wrapper for
Prototype.update but how does it get the partial in there?

Say I wanted to update a div with the contents of a partial manually
like this.

content = render(:partial => ‘whatever’)
page.call “$(‘my_div’).update(#{content})”

But his does not work. It keeps giving me weird errors about  
tags. Any clues?


#2

On Nov 22, 12:02 am, Joe B. removed_email_address@domain.invalid
wrote:

tags. Any clues?
That’s now how you are supposed to use page.call. The first argument
is supposed to be the function to call (ie $(‘my_div’).update) and
subsequent arguments are arguments to pass through. What your code
does is ask the browser to execute

$(‘my_div’).update(some html here)
(assuming that was the html content), ie the string literal is not
quoted and is just dumped in there. There is no need to use page.call
here though as page.replace_html handles this already (see
http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper/JavaScriptGenerator/GeneratorMethods.html#M001446
)

Fred


#3

I am aware of page.update and page.replace_html but I was wondering how
it actually works.

Basically I have a callback from a scriptaculous effect that will update
a div with the results of some partial so I can not use the built in
page.xxx calls.


#4

On Nov 22, 8:32 pm, Joe B. removed_email_address@domain.invalid wrote:

I am aware of page.update and page.replace_html but I was wondering how
it actually works.

Basically I have a callback from a scriptaculous effect that will update
a div with the results of some partial so I can not use the built in
page.xxx calls.

Your first post rather implied that you could since you were using
page.call. Anyway, first off you can use update_page to get an rjs
like page object anywhere you happen to be. Secondly prototype’s
update stuff is as simple as $(‘some_div’).update(‘hello world’). If
however you are generating the html in rails and then just injecting
it into some javascript with #{} then you need to quote the string of
html properly (and if you quote the string with " you need to escape
any " in the html (and similarly with '). page.call does all that for
you, there’s a helper whose name I forget that does that and to_json
would probably do the trick too.

Fred