2011-12-11 14 views
5

में प्रॉन पीडीएफ फाइलों को कैसे स्टोर करें मुझे पथ के साथ समस्या है। अपने मॉडल में मैं सेटअप निम्नलिखित है:अमेज़ॅन एस 3

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 

और मेरी समस्या यह है, कि इस पीडीएफ फाइल 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 पर सहेजी गई है।

मुझे पूरी तरह से यकीन नहीं है, अगर मैं पीडीएफ फाइलों को सही तरीके से सहेजने के लिए प्रॉन का उपयोग करता हूं, लेकिन मुझे लगता है कि समस्या नियंत्रक में हो सकती है, जहां मैंने जगह स्थापित की है, जहां बनाई गई फाइल को सहेजना है ..

मैं आपसे पूछना चाहता हूं, मुझे एस 3 में सही निर्देशिका में पीडीएफ फाइलों को सहेजने के लिए क्या बदलना चाहिए ... सभी मदद की सराहना की जाएगी!

मैनी धन्यवाद सितम्बर

उत्तर

1

पथ के Users/my_name/my_ruby_root_directory/name_of_my_project/public हिस्से की :rails_root/public भाग से आया है के साथ आसान बना देता है जिस पथ को आपने पेपरक्लिप में कॉन्फ़िगर किया था। तो अगर आप वास्तव में S3 "निर्देशिका" चाहते app/public/pdff/id_of_a_user/file_name_of_pdf_file होने के लिए आप निम्न पथ paperclip देने की आवश्यकता: app/public/pdffiles/:user_id/:style/:basename.:extension

इसके अलावा, अपने मॉडल के अनुसार, आप pdff.invoice_file = pdf_filepdff.pdffile_file = pdf_file

के बजाय का उपयोग करना चाहिए मुझे आशा है कि इस मदद करता है।