Javascript - problema con periodically_calll_remote


#1

Buenos dias,

Estoy probando con el controlador avisos, a añadir por javascript un
aviso en la vista, de una manera muy simple :

AvisosController

def anadir
@aviso = Aviso.find :first, :order => “id desc”
render :update do |page|
page.insert_html :bottom, :tablon , :partial => “div_aviso”,
:object => @aviso
end
end

Vista

Ajax Demo <%= stylesheet_link_tag 'main2' %> <%= stylesheet_link_tag "style" %> <%= javascript_include_tag "prototype", "effects", "controls" %>

Avisos

</div>


      <%= link_to_remote 'llamada' , :url =>{ :controller =>

‘avisos’ , :action => :anadir } %>

Esto funciona perfectamente, el problema viene cuando sustituyo la
llamada por :

<%= periodically_call_remote(:update => "tablon", :frequency => '5',
                   :url =>{ :controller => 'avisos' , :action =>

:anadir }) %>

Ahi , ya no añade el texto a la pagina y en su lugar, me renderiza el
código en si del javascript :

try { new Insertion.Bottom(“tablon”, “\n
45</p>\n”); } catch (e) { alert(‘RJS error:\n\n’ + e.toString());
alert(‘new Insertion.Bottom(“tablon”, “\n
45<\/p>\n”);’); throw e }

No entiendo muy bien porque pasa esto, alguna ayuda ?


#2

AvisosController

def anadir
@aviso = Aviso.find :first, :order => “id desc”
render :update do |page|
page.insert_html :bottom, :tablon , :partial => “div_aviso”,
:object => @aviso
end
end

      <%= link_to_remote 'llamada' , :url =>{ :controller =>

‘avisos’ , :action => :anadir } %>

Esto funciona perfectamente, el problema viene cuando sustituyo la
llamada por :

<%= periodically_call_remote(:update => "tablon", :frequency => '5',
                   :url =>{ :controller => 'avisos' , :action =>

:anadir }) %>

Ahi , ya no añade el texto a la pagina y en su lugar, me renderiza el
código en si del javascript :

No entiendo muy bien porque pasa esto, alguna ayuda ?

Hola David V., tu código esta bien lo que pasa es lo siguiente
cuando usas el:
<%= link_to_remote ‘llamada’ , :url =>{ :controller =>‘avisos’ , :action
=> :anadir } %> fijate que no usas :update y en

<%= periodically_call_remote(:update => “tablon”, :frequency => ‘5’,
:url =>{ :controller => ‘avisos’ , :action =>:anadir }) %> si estas
usando :update, ese es el problema amigo no puedes usar :update ya que,
ya lo tienes en tu controlador fíjate en tu código:

def anadir
@aviso = Aviso.find :first, :order => “id desc”
render :update do |page|
page.insert_html :bottom, :tablon , :partial => “div_aviso”,:object
=>
@aviso
end

y es por eso que te da el error:

try { new Insertion.Bottom(“tablon”, “\n
45</p>\n”); } catch (e) { alert(‘RJS error:\n\n’ + e.toString());
alert(‘new Insertion.Bottom(“tablon”, “\n
45<\/p>\n”);’); throw e }


No importa cual es tu meta lo importante es alcanzarla
Mérida – Venezuela


#3

Gracias, funciona perfecto. Estaba atascado en eso y no conseguía ver el
fallo por mas que miraba la api o algún ejemplo .