在Rails模型中保存之前打开临时文件

时间:2013-05-04 00:02:46

标签: ruby-on-rails paperclip

上传文件后,是否可以在保存模型之前打开该文件?

我正在使用Paperclip将文件保存在/ public文件夹中。

class Book < ActiveRecord::Base
  before_save :open_it
  has_attached_file :upload

  def open_it
    a_file = open(upload.url) # this doesn't work before save ?
    # ... 
  end
end

2 个答案:

答案 0 :(得分:17)

发现它:

def model_method
  f = open(self.upload.queued_for_write[:original].url)
end

更新

根据生态系统的回复,使用.path代替.url更新版本的Paperclip宝石

答案 1 :(得分:6)

足够近,但.url对我不起作用,path有效。

file = open(uploaded.queued_for_write[:original].path)

做了这个伎俩。