2011-03-20 13 views
20

पर स्थानीय रूप से और फाइल सिस्टम का उपयोग करने के लिए अमेज़न मुझे यकीन है कि पर्यावरण ऐसी है कि वाहक तरंग जब एप्लिकेशन को स्थानीय रूप से (विकास) चल स्थानीय फ़ाइल भंडारण का उपयोग करेगा कॉन्फ़िगर कैसे करें और नहीं कर रहा हूँ S3 के बाद मैं Heroku को लोड (उत्पादन)कॉन्फ़िगर पर्यावरण Heroku

विकास भंडारण में

: फ़ाइल

उत्पादन भंडारण में: S3

उत्तर

23

या तो मॉडल कर सकते हैं, या आप इसे वैश्विक स्तर पर सेट कर सकते हैं। https://github.com/jnicklas/carrierwave/tree/v0.5.2

पर नीचे के पास, टेस्ट वातावरण को कॉन्फ़िगर करने के लिए कुछ निर्देश हैं, v0.5.2 (वर्तमान मणि) के लिए रीडेमे पर एक नज़र डालें। "विकास" और "उत्पादन" के लिए अलग-अलग कॉन्फ़िगरेशन का उपयोग करने के लिए एक ही दृष्टिकोण का उपयोग करें, उदा। "Config/initialisers" के लिए एक फ़ाइल "carrierwave.rb" जोड़ सकते हैं और विन्यास कोड

if Rails.env.test? or Rails.env.cucumber? 
    CarrierWave.configure do |config| 
    config.storage = :file 
    config.enable_processing = false 
    end 
end 

और विकास

if Rails.env.development? 
    CarrierWave.configure do |config| 
    config.storage = :file 
    end 
end 

और उत्पादन

if Rails.env.production? 
    CarrierWave.configure do |config| 
    config.storage = :s3 
    end 
end 
+1

मैं इस कोड रख सकता हूं? Development.rb? मैं इसे development.rb में डाल दिया और मैं एक त्रुटि संदेश पूर्णांक में प्रतीक परिवर्तित नहीं कर सकते जब मैं कोशिश करते हैं और पहुँच avatar.url मिल सकता है? – user663778

+2

मैं में "config/initializers/carrierwave.rb" रख दिया होगा (एक नई फ़ाइल बनाना)। – juwalter

1

मैं इस एक मॉडल में कहीं सेट किया गया है अनुमान लगा रहा हूँ। आप

if Rails.env.production? 
    // set production 
else 
    // set dev/test 
end 
+0

धन्यवाद। क्या मुझे इस कोड को प्रारंभिक विधि में जोड़ना चाहिए? जो फ़ाइल में – user663778

7

के लिए सबसे आसान तरीका मैं आमतौर पर जोड़ने अपलोडर के माध्यम से है।

class CoverUploader < CarrierWave::Uploader::Base 
    # Choose what kind of storage to use for this uploader: 
    storage (Rails.env.production? ? :fog : :file) 
end 
+0

संक्षिप्त एक लाइनर के लिए धन्यवाद। यह पर्यावरण-आधारित भंडारण निर्णय लेने के लिए एक बेहतर स्थान (अपलोडर में) जैसा लगता है। मेरे मामले में मुझे केवल अपने अपलोडरों में से एक में भेद करने की आवश्यकता थी। –