2010-01-25 12 views
21

मेरा रेल एप्लिकेशन उबंटू सर्वर मशीन पर चलता है।रेल - पोर्टेबल तरीके से अस्थायी फ़ाइलों को बनाना

मैं क्रम में अस्थायी फ़ाइलों को बनाने के लिए करने के लिए "फ़ीड" उन्हें (मामले में इस जानकारी की जरूरत है मैं इस के लिए रेक कार्यों का उपयोग करेंगे,) एक दूसरे, स्वतंत्र अनुप्रयोग के लिए

मेरा प्रश्न है की जरूरत है: क्या रेल आवेदन पर अस्थायी फ़ील्ड बनाने का सबसे अच्छा तरीका है?

चूंकि मैं उबंटू में हूं, इसलिए मैं उन्हें /tmp/whatever पर बना सकता हूं, लेकिन केवल लिनक्स में ही काम करेगा।

मैं अपने आवेदन को यथासंभव पोर्टेबल के रूप में रखना चाहता हूं - इसलिए यदि आवश्यक हो तो इसे विंडोज मशीन & मैक पर स्थापित किया जा सकता है।

कोई विचार?

बहुत बहुत धन्यवाद।

उत्तर

36

tmp/ निश्चित रूप से फ़ाइलों को रखने के लिए सही जगह है।

उस फ़ोल्डर पर फ़ाइलों को बनाने का सबसे अच्छा तरीका मैंने ruby's tempfile library का उपयोग कर रहा है।

कोड इस तरह दिखता है:

require 'tempfile' 

def foo() 
    # creates a temporary file in tmp/ 
    Tempfile.open('prefix', Rails.root.join('tmp')) do |f| 
    f.print('a temp message') 
    f.flush 
    #... do more stuff with f 
    end 
end 

मैं इस समाधान क्योंकि चाहते:

  • यह यादृच्छिक फ़ाइल नाम स्वत: जनरेट करता (आप एक उपसर्ग प्रदान कर सकते हैं)
  • यह स्वचालित रूप से फ़ाइलों को हटा देता जब वे अब उपयोग नहीं किया जाता है। उदाहरण के लिए, यदि रेक रेक पर आक्रमण किया जाता है, तो रेक कार्य समाप्त होने पर फ़ाइलों को हटा दिया जाता है।
+7

'Rails.root.join ('tmp')', "# {Rails.root}/tmp" '। पूर्व क्लीनर और (शायद) अधिक पोर्टेबल है। – skalee

+0

अच्छा बिंदु। फिक्स्ड, धन्यवाद! – kikito

+0

कूल, क्या एक उपयोगी अमूर्तता है। यदि आप इसे ढूंढ रहे हैं तो tmp फ़ाइल को संदर्भित करने के लिए – elsurudo

7

रेल ऐप्स के पास भी अपनी tmp/ निर्देशिका है। मुझे लगता है कि एक हमेशा उपलब्ध है और इस प्रकार आपके आवेदन पोर्टेबल का उपयोग करने और रखने के लिए एक अच्छा उम्मीदवार है।

संबंधित मुद्दे