【发布时间】:2014-06-02 16:38:47
【问题描述】:
我有一个名为 Estate 的模型,其中 has many :images (Image model) 和
我正在使用 CarrierWave 和 jQueryFileUpload 在 Estate New/Edit 表单中处理这些。
在创建新资产并上传图像时,jQueryFileUpload 使用 AJAX 请求执行此操作,因此我将所有上传的图像路径存储在会话数组中,然后在 create 或 update 操作中使用此数组进行保存从tmp 目录到实际目录的图像。
这对我来说很好,但问题是当我一次选择多张照片时,会话数组仅存储最后选择的图像,并且除了最后一张之外,并非所有图像都被推送到会话数组。
def images_url_list
@image = Image.new(image_params)
session[:cached_images_paths] << @image.image_file.current_path
end
我已经调试了这个动作,我发现如果我一次选择 5 个图像,images_url_list 动作会被触发 5 次,所以假设我上传了一个名为“path0”的图像,然后我上传了 5 个路径名为 [”的图像path1","path2","path3","path4","path5"] 并且会话已经有一个名为“path0”的路径,第一次上传第一张图片后会话将是 ["path0", "path1"] , 第二次 ["path0","path2"] 依此类推,直到最后一个图像是 path5。
所以图像路径的最终计数只有 2 个而不是 6 个图像路径。
谁能告诉我到底是什么问题?
【问题讨论】:
标签: ruby-on-rails session ruby-on-rails-4 carrierwave jquery-file-upload