0

让我首先说我愿意接受更好的方法来做到这一点,但这就是我到目前为止所拥有的。

假设我有一个包含 100 张图像的 zip 文件。我想遍历 zip 文件并将每个图像“附加”到记录中。我安装了回形针以将图像附加到 ActiveRecord 中的记录。到目前为止,我正在使用以下代码:

Zip::File.open(params['images'].path) do |zipfile|
  zipfile.each do |file|
      # THIS IS WHAT I'M MISSING
  end
end

这就是我想要结束的:

Zip::File.open(params['images'].path) do |zipfile|
  zipfile.each do |file|
      MyModel.create(parent_id: 1, image: "...")
  end
end

我怎么能那样做?

4

1 回答 1

0

您应该从 zip 创建临时文件,而不是使用此临时文件创建回形针附件

Zip::File.open(params['images'].path) do |zipfile|
    zipfile.each do |file|
        tempfile = Tempfile.new(File.basename(file.name))
        tempfile.binmode
        tempfile.write file.get_input_stream.read

        # to save original file name to model, use image_file_name
        MyModel.create(parent_id: 1, image: tempfile, image_file_name: file.name)

        tempfile.close
    end
end
于 2014-08-27T13:14:13.483 回答