2010-06-04 17 views
58

में मौजूदा छवियों को नई शैली में आकार बदलें मैं अपने रेल ऐप में अपलोड और ऑटो-आकार बदलने के लिए पेपरक्लिप का उपयोग कर रहा हूं, और मुझे यह पसंद है। केवल हर समस्या के बारे में समस्या है मेरे पागल प्रबंधक का फैसला है कि वह फोटो को प्रदर्शित करने के लिए एक नया आकार चाहता है। इसलिए मैं अपने फोटो मॉडल में एक नई शैली जोड़ता हूं और सभी नई तस्वीरों के लिए अच्छा है, लेकिन पूर्व-मौजूदा फ़ोटो अब एक समस्या है । अब जब मुझे निपटने के लिए कुछ से अधिक फ़ोटो मिलना शुरू हो रहा है, तो मुझे मौजूदा तस्वीरों का आकार बदलने के लिए एक प्रोग्रामेटिक तरीका चाहिए। शायद ऐसी चीज के लिए कुछ पेपरक्लिप चाल है? मुझे वास्तव में RMagick को समझना नहीं होगा और मुझे एक स्क्रिप्ट लिखना पड़ेगा यदि मुझे नहीं करना है।पेपरक्लिप और आरएमएजिक

+1

अच्छा प्रश्न प्रिय +1 !!! –

उत्तर

79

आप पेपरक्लिप :: अटैचमेंट की reprocess! विधि चाहते हैं। the docs देखें। ताज़ा रैक कार्य है, जो आसान हो सकता है:

class User < ActiveRecord::Base 
    has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" } 
end 

# Console... 
>> User.find_each { |u| u.avatar.reprocess! } 

इसके अलावा, reprocess! विधि से पहले टिप्पणी के अनुसार, वहाँ पेपर क्लिप है।

+6

धन्यवाद! पेपरक्लिप: रीफ्रेश रेक ने महान काम किया – tybro0103

+0

मेरे पसंदीदा में यह आदेश रखते हुए, धन्यवाद :) – Richlewis

+4

यहां अपने पेपरक्लिप शैलियों को पुन: उत्पन्न करने के लिए प्रलेखन है। https://github.com/thoughtbot/paperclip/wiki/ थंबनेल- जनरेशन कमांड 'रेक पेपरक्लिप' होना चाहिए: रीफ्रेश करें: YOUR_STYLE_HERE क्लास = उपयोगकर्ता' – Hengjie

28

इस रेक पेपरक्लिप

rake paperclip:refresh:missing_styles 

रेफरी द्वारा प्रदान की कार्य कोशिश: https://github.com/thoughtbot/paperclip#post-processing

+5

... या इसे केवल एक मॉडल के लिए करें: 'रेक पेपरक्लिप: रीफ्रेश करें: missing_styles क्लास = YourModelName' – Arcolye

+1

कार्य के साथ रेल वातावरण को सेट करना न भूलें। 'रेक पेपरक्लिप: रीफ्रेश करें: missing_styles क्लास = YourModelName RAILS_ENV = उत्पादन' –