La gemme Ruby on Rails CarrierWave fonctionne-t-elle avec Ajax?

Pour une raison quelconque, utiliser la gemme CarrierWave avec Ajax ne semble pas fonctionner pour moi. Est-ce que je fais quelque chose de mal? J’ai bien suivi le CarrierWave Railscast et cela fonctionne sans AJAX, mais dans mon application, je dois utiliser AJAX. Voici mon code:

La liste des parameters après avoir sélectionné un fichier jpeg dans le champ du fichier image:

Parameters: {"item"=>{"remote_image_url"=>""}} 

new.html.erb:

  create_item_path, :html => {:id => "create_item_form", :multipart => true}) do |f| %> 


"save_button" %>

application.js

 $("#create_item_form").submit(function() { $.ajax({ type: "POST", url: $(this).attr("action"), dataType: "script", data: $("#destination_item").sortable('serialize') + "&" + $(this).serialize() }); return false; }); 

item.rb

 class Item < ActiveRecord::Base attr_accessible :description, :image, :remote_image_url belongs_to :user has_many :item_sub mount_uploader :image, ImageUploader end 

schema.rb

  create_table "item", :force => true do |t| t.integer "user_id" t.ssortingng "title" t.ssortingng "image" t.datetime "created_at" t.datetime "updated_at" end 

J’ai la gem carrierWave dans mon gemfile et je n’ai rien changé dans app / uploaders / image_uploader.rb.

Merci pour votre aide!

Il n’y a rien qui puisse être fait sans utiliser une bibliothèque comme Uploadify. En effet, la norme XMLHttpRequest (AJAX) ne prend pas en charge le téléchargement de fichiers. La seule façon de vraiment simuler cela consiste à utiliser un iFrame avec Flash. Uploadify est la meilleure de ces options et contient la meilleure documentation. C’est ce qu’il faut faire côté client (navigateur). Uploadify n’est vraiment pas une gemme ruby, c’est une collection de flash et js permettant au navigateur de “simuler”.

Sur le côté serveur, vous pouvez utiliser carrierwave pour prendre en charge les téléchargements, mais vous avez besoin d’un moyen de les obtenir du côté client. Voici une question extrêmement similaire qui devrait vous donner les instructions dont vous avez besoin.

Rails Carrier Wave avec JQuery Uploader

J’espère que cela t’aides,

Joe

Vous pouvez maintenant télécharger des fichiers via ajax sans utiliser de bibliothèques externes en utilisant FormData ()

VOIR: LINK 1 & LINK 2

Vous ne pouvez pas télécharger un fichier via ajax comme ça. Vous aurez besoin de quelque chose comme: http://www.uploadify.com/