Rails,将多个文件上传到相册

时间:2010-10-23 04:59:19

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-plugins paperclip

好吧这个很棘手 - 不要回避!

我已经设置了一个带有Rails 3 + paperclip + Ajax Upload的多文件上传器(http://valums.com/ajax-upload/)

我的控制器如下(有效):

  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

这里的大问题。如果用户上传3个文件,他们都将分开相册。 Rails上传3个文件,每个文件都有自己唯一添加的专辑。

那很糟糕。我需要批量上传的所有文件才能进入自己的专辑..

有关如何解决这个问题的任何想法?

在AJAX上传中,可以传递一个参数。我想过传递一个相册ID,问题是会导致很多空白相册,因为用户并不总是上传照片。

天才想要!谢谢

1 个答案:

答案 0 :(得分:1)

我同意这位评论者的观点。你应该发布你的params哈希和一些更多的代码,但是...接近它的一种方法是尝试使用ajax回调(jQuery在每个ajax调用上传回一个回调,我认为大多数其他库也是相同的)上传序列中的下一张照片。我会想象它会是这样的:

  1. 用户上传3张照片。
  2. Rails处理第一个上传,然后发送回调查找更多。此回调将包括刚刚上传第一张照片的相册的相册ID。如果没有上传照片,则不会调用上传操作,因此没有创建相册。
  3. Rails使用回调相册ID上传第二张图片,以了解第二张照片的放置位置。
  4. 重复处理,直到上传所有照片。
  5. 就像我说的那样,如果您发布更多代码,那么提供更全面的答案将会容易得多。