2012-01-30 10 views
29

में छवियों को पुन: प्रसंस्करण करना मान लें कि मेरे मॉडल में :thumb के साथ एक छवि है और ग्राहक :tiny और :nano थंबनेल चाहता है।कैरियरवेव

मैं रेक कार्य का उपयोग कर सभी मौजूदा छवियों को पुन: संसाधित कैसे करूं?

मुझे एक रेक कार्य मिला है जिसे मैंने सोचा था कि यह https://gist.github.com/777788 है लेकिन यह मुझे त्रुटियां दे रहा है।

उत्तर

50

Carrerwave प्रलेखन के अनुसार आप निम्नलिखित आदेशों का उपयोग कर सकते हैं:

Model.all.each do |model| 
    model.image.recreate_versions! 
end 
+1

मैंने इसे अब एक रेक कार्य में रखा है, यह मेरे ऐप को थोड़ा मुश्किल है लेकिन यह चाल करेगा –

+0

क्या यह सब कुछ फिर से बनाएगा, या सिर्फ नए संस्करणों को फिर से बनाएगा? –

+1

यदि आप पिछले 100 रिकॉर्ड्स के लिए छवियों को दोबारा बनाने की जरूरत है, तो यह सबकुछ फिर से बनाएगा -> 'Model.last (100) .each {| m | m.image.recreate_versions! } ' –

0

मैं Mikhail Nikalyukin

द्वारा इस महान जवाब पर विस्तार करने के लिए आप इस

की तरह कुछ कर सकते हैं एक एकल संस्करण पुन: संसाधित करने के लिए चाहता था
Model.all.each do |model| 
    model.image.recreate_versions!(:version1, :version2) 
end 

इस तरह यदि आपने एक नया संस्करण जोड़ा है तो आपको उन सभी को फिर से करने की ज़रूरत नहीं है