के साथ फ़ाइलों को अपलोड करने के लिए मैं AJAX के साथ फ़ाइलों को अपलोड करना चाहता हूं। अतीत में मैंने जादुई jQuery form plugin का उपयोग करके इसे पूरा किया और यह बहुत अच्छा काम किया। वर्तमान में मैं एक रेल ऐप बना रहा हूं और चीजें "रेल मार्ग" करने की कोशिश कर रहा हूं, इसलिए मैं फॉर्म संलग्नक जोड़ने के लिए फॉर्म हेल्पर और पेपरक्लिप मणि का उपयोग कर रहा हूं।रेल 4: AJAX
rails docs चेतावनी दी है कि फार्म हेल्पर AJAX फ़ाइल अपलोड करने के लिए काम नहीं करता: सच:
एक अतुल्यकालिक फ़ाइल अपलोड प्रपत्र बनाने अन्य रूपों के विपरीत दूरदराज के साथ form_for प्रदान करने के रूप के रूप में सरल नहीं है। एक अजाक्स फॉर्म के साथ ब्राउज़र के अंदर चल रहे जावास्क्रिप्ट द्वारा क्रमशः किया जाता है और जावास्क्रिप्ट आपके हार्ड ड्राइव से फ़ाइलों को नहीं पढ़ सकता है फ़ाइल अपलोड नहीं किया जा सकता है। सबसे आम कामकाज एक अदृश्य आईफ्रेम का उपयोग करना है जो फ़ॉर्म सबमिशन के लिए लक्ष्य के रूप में कार्य करता है।
ऐसा लगता है कि कोई ऑफ-द-शेल्फ समाधान नहीं है। तो मैं सोच रहा हूं कि क्या करने की सबसे बुद्धिमान चीज है। ऐसा लगता है कि मेरे पास कई विकल्प हैं:
- फॉर्म सहायक और आईफ्रेम चाल का उपयोग करें।
- उपयोग प्रपत्र सहायक + पेपरक्लिप + [कुछ अन्य मणि] (अगर यह रेल की प्रामाणिकता टोकन, आदि के साथ अच्छा खेलेंगे यकीन नहीं) यह कार्यक्षमता है विस्तार करने के लिए प्रपत्र सहायक के बीच + jQuery फार्म प्लगइन लोड फ़ाइल प्रस्तुत करने के लिए AJAX फॉर्म जमा करने की अनुमति देने के लिए।
सभी तीन संभव लगते हैं। मुझे कम से कम # 3, विशेष रूप से [कुछ अन्य मणि] भाग पता है। मुझे दो समान प्रश्न मिले (this और this) जो अपलोडिफ़ी नामक Pic-Upload की एक शाखा का उल्लेख करते हैं लेकिन वे 2 साल पुराने हैं और रेल 2 और 3 से निपटते हैं (और अपलोडिफ़ाई को वर्षों में अपडेट नहीं किया गया है)। तो यह कितना बदल गया है, मुझे लगता है कि यह वास्तव में एक नया सवाल है:
रेल 4 में AJAX के साथ फ़ाइलों को अपलोड करने का सबसे अच्छा तरीका क्या है?
मुझे लगता है कि उद्धरण स्पष्ट रूप से बताता है कि आपने हमेशा "जादुई jQuery फॉर्म प्लगइन का उपयोग करके" क्यों किया;) –
रेल के फॉर्म सहायक के साथ इसका उपयोग करने के सबसे आसान तरीके पर कोई सलाह? मुझे लगता है कि मुझे इसका उपयोग नहीं करना चाहिए: remote => true और बस फॉर्म प्लगइन को काम करने दें। – emersonthis
कि प्लगइन awesome-- सिर्फ यह पता करने की कोशिश की है और एक आकर्षण की तरह काम कर रहा है। जानकारीपूर्ण सवाल :) खुला मुद्दों के – Jay