¿Hay alguna manera fácil de manejar la carga de archivos AJAX en Rails? p.ej. con un complementoRuby on Rails Carga de archivo AJAX
Respuesta
Seguramente es posible, here Tiene un tutorial y un par de enlaces a complementos.
Si está utilizando Rails 3, he escrito un complemento que hace que las cargas de archivos de estilo AJAX sean relativamente triviales para implementar.
jQuery Carga de archivos es proyecto de widget de carga de archivos muy activo y versátil.
Ver la demo aquí: http://blueimp.github.com/jQuery-File-Upload/
Aquí es una joya: http://rubygems.org/gems/jquery.fileupload-rails
El wiki también tiene Rieles ejemplos: https://github.com/blueimp/jQuery-File-Upload/wiki
en realidad no es necesario el uso de algunos plugins especiales para ello. La manera más fácil de hacer la carga de imágenes ajax para mí fue simplemente hacer que la carga de imágenes actuara como ajax. Para eso uso el plugin jQuery ajaxForm: http://www.malsup.com/jquery/form/ Luego de regresar a la imagen cargada js y ponerla en su página.
Por lo tanto, usted debe tomar su forma sea ajaxForm:
$('#uploader').ajaxForm({dataType: "script",
success: ajaxFormErrorHandler,
error: ajaxFormSuccessHandler
}
controler se ve así:
def add_photo
@photo = PhotosMeasurement.new(params[:user_photo])
respond_to do |format|
if @photo.save
format.json { render :json => @photo}
else
format.json { render :json => nil}
end
end
end
y en ajaxFormSuccessHandler sólo tiene que obtener la imagen de objeto:
var photo = jQuery.parseJSON(responseText.responseText);
y poner foto donde quieras:
target.find('.addPhoto').before(''+
'<input class="imageId" type="hidden" value='+photo.id+' > '+
'<img src='+photo.photo.thumb.url+' alt="Thumb_1"> ');
P.S: No sé realmente por qué, pero si regresa al manejador ajaxForm algo, maneja esa solicitud como ERROR no SUCCESS.
P.P.S: seguramente el plugin jQuery-File-Upload hace más, pero si no necesita todo eso, puede usarlo de esta manera.
P.P.P.S: usted debe tener la carga de archivos no ajax ya es funcional para hacer eso =)
- 1. contenido dinámico con ajax (ruby on rails)
- 2. Carga de archivos en Ruby on Rails
- 3. ¿Funciona la gema CarrierWave de Ruby on Rails con Ajax?
- 4. Copie un archivo en Ruby on Rails
- 5. Crear archivo descargable en Ruby on Rails
- 6. Carga de archivos múltiples en Ruby on Rails 3
- 7. Ruby vs. Ruby on Rails
- 8. Ruby on Rails enviar
- 9. Ruby on Rails will_paginate
- 10. Docsplit Ruby on Rails
- 11. Ruby on Rails, json vs js ajax response
- 12. Clasificación por estrellas en AJAX con Ruby On Rails
- 13. Ruby on Rails Switch
- 14. Ruby on Rails: descargable
- 15. Ruby on rails - método PUT en la actualización ajax
- 16. Ruby on Rails: Running Tests
- 17. Ruby on Rails: carga de datos de inicialización de un archivo YAML
- 18. Usos de Ruby on Rails
- 19. Carga de archivo Ajax
- 20. Ruby on Rails: Hello World
- 21. Ruby on Rails Rake Error
- 22. Descargar archivo al hacer clic - Ruby on Rails
- 23. Ruby on Rails, detección de Javascript
- 24. Problemas de Ruby on Rails en heroku
- 25. ¿Cómo subir un archivo en ruby on rails?
- 26. Ruby on rails tamaño de archivo de registro demasiado grande
- 27. Ruby on Rails: no se carga ese archivo - openssl en RedHat Linux Enterprise
- 28. Perfilando una aplicación ruby / ruby on rails
- 29. Ruby on Rails asociación polimórfica
- 30. Ruby on rails y Node.js
Bastante impresionante - Qué sabes de algún prototipos de soluciones similares? Esto es realmente algo útil. –
No conozco ninguna solución de estilo de prototipo, pero el código de jQuery fue tan trivial de implementar que no me imagino que sería difícil de modificar. Si desea ayudar, siéntase libre de bifurcar Remotipart en github y lo fusionaré en trunk. http://github.com/formasfunction/remotipart – leppert
Nota para aquellos que leen esta publicación: remotipart tiene errores importantes (como: no funciona con varios niveles de texto entre comillas, que se conoce desde hace 2 años) y el propietario del repositorio no está activo tratando de arreglar esto Así que considere esto antes de perder horas (como yo) implementando luego reemplazándolo con otra solución. – Benj