2011-07-07 3 views
2

私は、生成されたPDFをRails 3.0.7でAmazon S3に保存するためのdocraptor railsの例を手に入れようとしています。 ActionController :: UploadedFileがActionDispatch :: Http :: UploadedFileに置き換えられたようですが、そのクラスを使用してファイルオブジェクトを拡張しようとするとエラー'wrong argument type Class (expected Module)'が発生します。モジュールActionController :: UploadedFileの代わりになるものは何ですか?

ここにソースがあります。私は '延長'を間違って使用していますか?私はここで何をしようとしているのですか?本当に、私がしたいのは、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 
+0

終わりで、私はちょうどそれを袋に入れた。ローカル変数を保存したいファイルの名前に設定し(self.pdfdoc)、残りの部分をpaperclipが処理します。それはうまくいった。 – Mark

答えて

2

最後に、私はそれを袋に入れました。ローカル変数を保存したいファイルの名前に設定し(self.pdfdoc)、残りの部分をpaperclipが処理します。それはうまくいった。

1

将来的にこのに走る人にとって3年後...

質問に答えるように何が、これはそれを行うには「正しい」方法ではありません:

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