3

D'accord, celui-ci est difficile - ne pas hésiter!Rails, chargement de plusieurs fichiers dans un album

J'ai installé une Uploader multi-fichiers avec Rails 3 + + Ajax paperclip Ajouter (http://valums.com/ajax-upload/)

Mon contrôleur est la suivante (qui fonctionne):

def upload 
    @photoalbum = PhotoAlbum.create 
    @photo = @photoalbum.photos.create({ :photo => params[:file], :title => params[:filename], :description => "Uploaded on #{Date.today.strftime("%b %d, %Y")}" }) 

    respond_to do |format| 
     format.json 
    end 
    end 

Le gros problème ici. est-ce que si un utilisateur télécharge 3 fichiers, ils vont tous séparer les albums. Rails télécharge les 3 fichiers, et chaque fichier a son propre album ajouté de manière unique.

C'est mauvais. J'ai besoin de tous les fichiers téléchargés dans un lot pour aller à son propre album ..

Des idées sur la façon de résoudre ce problème?

Dans le téléchargement AJAX, il est possible de transmettre un paramètre. J'ai pensé à passer un identifiant d'album, le problème est que cela conduirait à beaucoup d'albums vierges, car l'utilisateur ne télécharge pas toujours les photos.

Génie recherché! merci

+0

Si le problème n'est pas clair, s'il vous plaît laissez-moi savoir Désespérément besoin de résoudre celui-ci. merci – AnApprentice

+0

Cela peut être utile si vous incluez le hash params que vous obtenez lorsque vous téléchargez vos fichiers (à partir de votre log évidemment). –

Répondre

1

Je suis d'accord avec le commentateur avant. Vous devriez poster votre hash params et un peu plus de code, mais ... Une façon de l'approcher serait d'essayer d'utiliser le callback ajax (jQuery repasse un callback sur chaque appel ajax, je pense que la plupart des autres librairies aussi) pour télécharger la photo suivante dans la séquence. J'imagine que cela irait quelque chose comme ceci:

  1. L'utilisateur envoie 3 photos.
  2. Rails traite le téléchargement du premier, puis envoie un rappel en cherchant plus. Ce rappel inclurait l'identifiant de l'album de l'album sur lequel la première photo a été téléchargée. S'il n'y avait pas de photos téléchargées, il n'y aurait pas d'appel à l'action de téléchargement et donc aucun album créé.
  3. Rails télécharge la deuxième image en utilisant l'identifiant de l'album de rappel pour savoir où placer la deuxième photo.
  4. Le processus se répète jusqu'à ce que toutes les photos soient téléchargées.

Comme je l'ai dit cependant, il serait beaucoup plus facile de donner une réponse plus complète si vous avez posté plus de code.

Questions connexes