2011-08-18 9 views
6

मैं रेल के लिए काफी नया हूं और पेपरक्लिप मणि के साथ कोई समस्या है। मैंने मणि स्थापित किया है और यह विकास में अच्छी तरह से काम करता है (लोकलहोस्ट: 3000) लेकिन जब मैं इसे हेरोकू सर्वर पर चला रहा हूं, किसी कारण से यह फाइल संलग्न नहीं करना चाहता, और ऐप ब्रेक (त्रुटि 500 ​​पेज)।पेपरक्लिप विकास में काम कर रहा है लेकिन उत्पादन में काम नहीं कर रहा है?

यहां प्रक्रिया है जो मैंने भाग लिया ... मैंने अपनी फ़ाइल को उसकेोकू में धक्का दिया, उसकेोकू भागने वाला रेक डीबी: माइग्रेट (पेपरक्लिप माइग्रेशन जोड़ने के लिए), और फिर मैंने उसेोकू पुनरारंभ किया (नए माइग्रेशन के साथ ऐप को पुनरारंभ करने के लिए) चलाया। यह मदद नहीं प्रतीत होता था।

यहाँ कोड मैं पेपर क्लिप के लिए है कि है:

user.rb मॉडल:

has_attached_file :avatar, 
        :styles => {:small => "70x70>"}, 
        :url => "https://stackoverflow.com/users/:attachment/:id/:style/:basename.:extension", 
        :path => ":rails_root/public/users/:attachment/:id/:style/:basename.:extension" 
    validates_attachment_size :avatar, :less_than => 500.kilobytes 
    validates_attachment_content_type :avatar, :content_type => ['image/jpeg', 'image/png'] 

edit_form.html.haml दृश्य:

= form_for (@user || User.new), :html => { :multipart => true } do |f| 
    ...  
    .profile_picture.text_field 
    = image_tag current_profile.avatar.url(:small) 
    %br 
    = f.file_field :avatar 

फिर, कुछ यह कारण के लिए विकास में बहुत अच्छा चलता है, लेकिन उत्पादन में टूट जाता है। किसी भी पॉइंटर्स की बहुत सराहना की जाएगी ... मैं इसे समझने के लिए प्रतीत नहीं कर रहा हूं और यह बहुत निराशाजनक है। आपके समय और किसी भी मदद के लिए बहुत बहुत धन्यवाद!

उत्तर

3

आपके मॉडल में।

has_attached_file :picture, 
        :styles => {:large => "275x450>"}, 
        :storage => :s3, 
        :s3_credentials => "#{RAILS_ROOT}/config/s3.yml", 
        :path => "appname/:attachment/:style/:id.:extension" 

s3.yml में अपने config निर्देशिका में: इस के लिए, इतना http://aws.amazon.com/s3/

+0

इसके लिए आपको बहुत बहुत धन्यवाद ... मैं निश्चित रूप से जाऊंगा और ऐसा करूंगा। धन्यवाद! –

1

आपको कुछ समस्याएं हो सकती हैं। हालांकि, पहला यह है कि आप हेरोोकू पर फ़ाइल सिस्टम पर नहीं लिख सकते हैं। आपको एस 3 जैसे एक अलग भंडारण तंत्र को लागू करना होगा। आप यहां इस सीमा के बारे में पढ़ सकते हैं: http://devcenter.heroku.com/articles/read-only-filesystem

+0

धन्यवाद जेक:

development: bucket: bucketname access_key_id: key secret_access_key: key production: bucket: bucketname access_key_id: key secret_access_key: key 

तो साइनअप एक बाल्टी के लिए अमेज़न S3 पर जाना! मैं वास्तव में इसकी सराहना करता हूं ... मुझे नहीं पता था कि मैं हरोकू में अपलोड नहीं कर सका, लेकिन यह पीछे की ओर देखता है। बहुत बहुत धन्यवाद, दोस्त !! –