生产中打开的文件类私有方法

时间:2013-06-10 11:15:45

标签: ruby-on-rails ruby file production

考虑以下方法:

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'

1 个答案:

答案 0 :(得分: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