Page.update_html not executed


#1

Hi,

when doing:
render :update do |page|
page.replace_html ‘suggested_contractors’, :partial =>
‘contractors’
page.visual_effect :highlight, ‘suggested_contractors’
end

I got js as output, it is not executed, return html contains:
try { Element.update(“suggested_contractors”, "
\n 12345678910\n
\n
"); new Effect.Highlight(“suggested_contractors”,{}); } catch (e) {
alert(‘RJS error:\n\n’ + e.toString());
alert(‘Element.update(“suggested_contractors”, "
\n 12345678910\n
\n
");\nnew Effect.Highlight(“suggested_contractors”,{});’); throw e }

Any idea?

Thank you,
Jean-Etienne www.novAgora.hu


#2

I’ll bet the content-type isn’t getting set correctly.

Are you setting it explicity in a filter somewhere,
accidentally overriding the correct value?


– Tom M.


#3

Or, you’re linking to the call with a link_to instead of link_to_remote.
Been there, lost lots of hair.


#4

oh…maybe you forgot to include

javascript_include_tag :defaults

in your layout


#5

Be sure that you don’t specify an update action twice, i.e. in an rjs
template and a link_to_remote. If you have a link_to_remote :update =>
“mydiv” , AND you have page.update_html “mydiv” … in an rjs file …
then this will happen! I hope I recall that correctly, but go looking
for such scenarios ,

cheers
Martin


#6

Quote from RJS Templates for Rails:

“Don’t Use the :update Option with RJS Calls
Never use the :update option when making remote calls to actions that
render
RJS templates. The :update option instructs Rails to generate an
Ajax.Updater Prototype object instead of an Ajax.Request object. The
Ajax.Updater updates a single DOM element with the contents of the
HTML response. RJS templates return JavaScript to the browser, which
must
be evaluated to produce the desired effects.”


#7

Martin G. wrote:

Be sure that you don’t specify an update action twice, i.e. in an rjs
template and a link_to_remote. If you have a link_to_remote :update =>
“mydiv” , AND you have page.update_html “mydiv” … in an rjs file …
then this will happen! I hope I recall that correctly, but go looking
for such scenarios ,

cheers
Martin

That was the problem.

Thank you