2012-06-20 15 views
5

Rails 3.1 ahora requiere que use image_tag al representar una imagen utilizando la canalización de activos.Cómo renderizar imágenes en Javascript con Rails 3.1

He creado scroll sin fin en mi aplicación y he puesto el código en un archivo js.coffee. Deseo renderizar un gif de carga giratorio mientras se cargan más productos. No puedo usar image_tag aquí, ya que este archivo no es compatible con el código de los rieles, pero lo he escrito aquí para que comprenda lo que estoy tratando de hacer.

jQuery -> 
    if $('.pagination').length 
    $(window).scroll -> 
     url = $('.pagination .next_page').attr('href') 
     if url && $(window).scrollTop() > $(document).height() - $(window).height() - 1200 
     $('.pagination').html("<%= image_tag("loading.gif") %> Loading more...") 
     $.getScript(url) 
    $(window).scroll() 

Anteriormente, yo he escrito en HTML puro, usando <img src=... Pero esto ya no trabajaré con la tubería de activos. ¿Cómo puedo conseguir esto?

Respuesta

5

Usar HTML simple debería funcionar bien.

Intente utilizar: <img src="/assets/loading.gif" /> si su loading.gif está dentro de assets/images.

ACTUALIZADO 21/06/2012

Según el Ruby on Rails Guide, Section 2.2.3, cambiando la extensión de archivo de los js archivo a filename.js.erb o filename.js.coffee.erb le permitirá utilizar el rubí incrustado dentro de su javascript.

Puede usar el ayudante asset_path para acceder a la ruta donde se almacenan sus activos.

+1

¿Esto no solo funcionará en producción si incluyo la parte de la huella dactilar? Tendría que ser algo como tob88

+0

Hmm, buen punto. No había pensado en eso, ya que solo estaba jugando con algo en mi entorno de desarrollo. Voy a echar un vistazo aquí en breve. – Zajn

+0

Quiero decir que podría poner image_tag en un div en la vista con display none y luego poner $ ('. PaginationLoader'). Show() en el código js. Pero esto simplemente parece innecesario, y un poco de trabajo, seguramente debe haber una mejor manera. Estaría interesado si pudieras encontrar algo, ¡gracias! – tob88

Cuestiones relacionadas