1

给定以下方法:

def import_photos
  require 'fileutils'
  File.open(Rails.root.join('tmp', 'fotos.zip'), "wb") do |f|
    f.write(params[:zipfile].read)
  end
  CamperPhoto.delay.import_photos
  redirect_to admin_campers_path, notice: "Afbeeldingen verwerken"
end

我只是上传一个 zip 文件并处理其中的图像。

在本地这工作正常。通过 rake 任务,这可以正常工作。但是,当尝试通过表单将其上传到生产环境时,我在生产日志中看到此错误:

NoMethodError (private method `open' called for #<Class:0xc0700d8>):
  app/controllers/spina/admin/campers_controller.rb:40:in `import_photos'
4

1 回答 1

1

从我自己的模块中调用 File.open 。调用 ::File.open 为我解决了这个问题。

def import_photos
  require 'fileutils'
  ::File.open(Rails.root.join('tmp', 'fotos.zip'), "wb") do |f|
    f.write(params[:zipfile].read)
  end
  CamperPhoto.delay.import_photos
  redirect_to admin_campers_path, notice: "Afbeeldingen verwerken"
end
于 2013-06-10T13:12:02.920 回答