什么是模块ActionController :: UploadedFile的替代品?

时间:2011-07-07 11:58:23

标签: ruby-on-rails ruby paperclip

我一直在努力获取docraptor rails示例,以使用Rails 3.0.7将生成的PDF保存到Amazon S3。似乎ActionController :: UploadedFile已被ActionDispatch :: Http :: UploadedFile取代,但当我尝试使用该类扩展我的文件对象时,我收到错误'wrong argument type Class (expected Module)'

这是来源。我是否正确使用'延伸'?我怎么能做我想在这里做的事情?实际上,我想要做的就是使用Paperclip指定上传到S3的文件的名称。

def create_pdfdoc(document_content)
  DocRaptor.create(  :document_content => document_content, 
                     :document_type    => 'pdf',
                     :name             => self.title.tr(' ','_'),
                     :test             => true) do |file, response|

      file.extend(ActionDispatch::Http::UploadedFile)
      file.content_type  = response.headers["content-type"]
      name = self.title.strip.gsub(/\s/, "_").gsub(/\W/, "").underscore.downcase
      file.original_filename = "#{name}.pdf"

      if response.code == 200
        self.pdfdoc = file
      end
  end
end

2 个答案:

答案 0 :(得分:2)

最后,我把它装袋了。我将局部变量设置为我要保存的文件的名称(self.pdfdoc),回形针处理其余的。它成功了。

答案 1 :(得分:1)

3年后没有回答问题......

对于将来遇到这种情况的任何人来说,这是“正确”的方式:

DocRaptor.create(options) do |file, response|
   upload = ActionDispatch::Http::UploadedFile.new({
      :filename => 'test.pdf',
      :type => response.headers["content-type"],
      :tempfile => file
    })
end