Forum: Rails-ES javascript - problema con periodically_calll_remote

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
David V. (Guest)
on 2008-10-29 14:09
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

<html>
  <head>
    <title>Ajax Demo</title>
  <%= stylesheet_link_tag 'main2' %>
   <%= stylesheet_link_tag "style" %>
  <%= javascript_include_tag "prototype", "effects", "controls" %>
</head>
  <body>
    <h1>Avisos</h1>
    <div id="tablon">

    </div>


          <%= link_to_remote 'llamada' , :url =>{ :controller =>
'avisos' , :action => :anadir } %>

  </body>
</html>

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 ?
Juan M. (Guest)
on 2008-10-29 15:30
> 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 } %>
>
>   </body>
> </html>
>
> 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
David V. (Guest)
on 2008-10-29 16:18
Gracias, funciona perfecto. Estaba atascado en eso y no conseguía ver el
fallo por mas que miraba la api o algún ejemplo .
This topic is locked and can not be replied to.