2011-04-01 6 views
8

Una respuesta rápida y fácil, estoy seguro. Estoy actualizando un proyecto de Rails de la versión 2 a la versión 3 y reemplazando una carga del link_to_remote con link_to según la actualización de Rails 3. Incluso algo tan simple como:Rails 2 to Rails 3: using link_to en lugar de link_to_remote (incluido el control remoto y la actualización)

<%= link_to "Check Time", 
     {:action=>:get_time}, :remote=>true, :update=>'current_time' %> 
<div id='current_time'></div> 

parece que no funciona. La solicitud (usando el método GET) está pasando por bien y el HTML representado es: entrada

<a href="/monitoring/get_time" data-remote="true" update="current_time">Check Time</a> 

routes.rb:

get "monitoring/get_time" 

Como digo Estoy seguro de que este es un tema muy obvio en ¡mi parte!

Respuesta

17

La opción :update no es compatible con la nueva link_to :remote => true.

que o bien tienen que

  • utilice el legacy plugin
  • escribir la JS/AJAX a sí mismo en lugar de utilizar :remote => true
  • uso render :update { |page| p.replace_html ... }
+6

No necesita reemplazar completamente: remote => true. Úsalo y vincula los eventos de devolución de llamada integrados de rails.js: 'ajax: before', 'ajax: complete', 'ajax: success', 'ajax: failure'. –

+0

El artículo ["JavaScript no intrusivo en Rails 3"] (http://bit.ly/aCdHWY) está un poco anticuado (8 de junio de 2010) pero tiene algunos ejemplos de enlaces a estos eventos. –

7

El parámetro :update se ha ido. Necesita manejar la actualización de DOM usted mismo usando JavaScript discreto. Además, asegúrese de que realmente haya incluido el asistente csrf_meta_tag en su diseño.

Escribí un artículo sobre using unobtrusive JavaScript in Rails 3.

+1

csrf_meta_tag incluido en el diseño principal. Parece ser el único problema con Ruby, la funcionalidad aparece y desaparece casi de la noche a la mañana. Entiendo la razón para eliminar: ¡actualizar pero fue un código muy útil! Gracias por su ayuda. – detheridge02

+3

Tenga en cuenta 'Rails! = Ruby'. –

+0

Sí, me refería a Rails :-) No se puede decir que soy un codificador de PHP teniendo que hacer frente a Ruby :-) ¡Gran artículo por cierto! – detheridge02

Cuestiones relacionadas