2011-12-11 43 views
5

パスに問題があります。私のモデルでは、私はセットアップを次ていますAmazon S3にPrawn PDFファイルを保存する方法

class Pdffiles < ActiveRecord::Base 
    belongs_to :user 

    has_attached_file :invoice_file, 
        :path => ":rails_root/public/pdffiles/:user_id/:style/:basename.:extension", 
        :url => "/pdffiles/:user_id/:style/:basename.:extension", 

        :storage => :s3, 
         :bucket => '...', 
         :s3_credentials => { 
          :access_key_id => '...', 
          :secret_access_key => '...' 
         } 
end 

とコントローラでは、この私のアクションになります。

pdf = Prawn::Document.new 
    pdf.move_down 70 

    pdf.text("Prawn Rocks") 
    pdf.render_file('prawn.pdf') 
    pdf_file = File.open('prawn.pdf') 

    pdff = Pdffile.new() 
    pdff.pdffile_file = pdf_file 
    pdff.user_id = todays_user.id 
    pdff.save 

をそして、私の問題は、このPDFファイルはS3サーバに格納されていること、であるが、上悪い場所。ディレクトリapp/public/pdff/id_of_a_user/file_name_of_pdf_fileは、

Users/my_name/my_ruby_root_directory/name_of_my_project/public/pdffiles/id_of_a_user/file_name_of_pdf_fileに保存されたファイルです。

PDFファイルを保存するためにエビを使用すると、私は完全にはわかりませんが、コントローラに問題があると思います。作成したファイルを保存する場所を設定しました。

私は、S3の正しいディレクトリにPDFファイルを保存するために変更する必要があることをお聞きしたいと思います。すべてのサポートに感謝します!

マニーおかげで、9月

答えて

1

FOGライブラリと非常に簡単S3にアップロードしますあなたがペーパークリップで設定したパス。だから、あなたは本当にあなたがクリップに次のパスを与える必要がありapp/public/pdff/id_of_a_user/file_name_of_pdf_fileするS3「ディレクトリ」をしたい場合:app/public/pdffiles/:user_id/:style/:basename.:extension

また、お使いのモデルによると、私はこれが役に立てば幸い代わりpdff.pdffile_file = pdf_file

pdff.invoice_file = pdf_fileを使用する必要があります。

関連する問題