निर्देशिका मैं एक फ़ाइल के लिए कुछ लिखना चाहते हैं।errno :: ENOENT (ऐसी कोई फ़ाइल या @ rb_sysopen
# where userid is any intger [sic]
path = Rails.root + "public/system/users/#{user.id}/style/img.jpg"
File.open(path, 'wb') do |file|
file.puts f.read
end
जब यह कोड निष्पादित होने पर, मैं इस त्रुटि हो रही है। मैं जानता हूँ कि इस फ़ोल्डर नहीं करता ' टी मौजूद हैं, लेकिन File.open
w
मोड के साथ अगर यह मौजूद नहीं है एक नई फ़ाइल बनाता है।
क्यों इस काम नहीं कर रहा है, तो यह मौजूद नहीं है?
बस उत्सुक किया जा रहा है: यहां इसका कारण क्यों File.join यहाँ सलाह दी जाती है? यह प्लेटफॉर्म विशिष्ट विभाजक (उदाहरण के लिए, विंडोज़ पर '\ ') के साथ पथ घटकों में हमेशा जुड़ता है। जबकि ** ** ** मामले हैं, जहां हम यही चाहते हैं, हम आमतौर पर सभी प्लेटफॉर्म पर '/' के साथ चिपकने का प्रयास करते हैं, क्योंकि यह पोर्टेबिलिटी के संबंध में कम सिरदर्द देता है। यहां पोस्ट किए गए कोड के मामले में, मुझे नहीं लगता कि प्लेटफ़ॉर्म-विशिष्ट फ़ाइल विभाजक क्यों लाभ उठा सकते हैं। – user1934428
@ user1934428 "हम आम तौर पर सभी प्लेटफॉर्म पर चिपकने का प्रयास करते हैं, क्योंकि यह पोर्टेबिलिटी के संबंध में कम सिरदर्द देता है" - इसके अलावा 'फाइल.जॉइन' का उपयोग करके बकवास है, ओपी में एक जैसे मूर्खतापूर्ण गलतियों से बचने में मदद करता है: ' Rails.root' स्लैश के साथ समाप्त नहीं होता है और '+' '/ railsrootpublic /' देता है (ऊपर स्लैश मिस नोट करें) – mudasobwa
@ मुदासोबावा: मेरे रेल कंसोल में रेल .root + "bla/bla" गीव सही पथ :) – ashwintastic