2011-12-28 19 views
6

मैंने अभी देखा this error और मुझे अपनी रेल 3.1 परियोजना (मैं संपत्ति पाइपलाइन का उपयोग नहीं कर रहा हूं) को jQuery 1.7+ में अपग्रेड करना होगा।मैं रेल 3 का उपयोग कर jQuery 1.7+ में कैसे अपडेट कर सकता हूं?

मुझे लगता है कि मेरे जावास्क्रिप्ट फ़ोल्डर (सार्वजनिक/जावास्क्रिप्ट) में पहले से ही jQuery पुस्तकालय हैं। नई jQuery लाइब्रेरी को मैन्युअल रूप से कॉपी करने के लिए, क्या रूबी का उपयोग करके जावास्क्रिप्ट फ़ाइल को प्रतिस्थापित करने के लिए कोई टिप्पणी है?

+1

क्या है आपके 'सार्वजनिक/javascripts' निर्देशिका में jQuery पुस्तकालय का एक नया संस्करण को कॉपी के साथ गलत? जब मैं अपने जावास्क्रिप्ट को रेल परियोजना में अपग्रेड करना चाहता हूं तो मैं यही करता हूं। – Batkins

+0

मुझे रेल के बारे में कुछ भी नहीं पता है, लेकिन यदि संभव हो, तो jQuery की [jquery-latest.js] (http://code.jquery.com/jquery-latest.js) फ़ाइल से बाहरी रूप से कनेक्ट करने का तरीका निकालें और समझें। इसमें jQuery का नवीनतम संशोधन उपलब्ध है। –

उत्तर

13

रेल 3.1 में, jQuery jquery-rails gem द्वारा प्रबंधित किया जाता है। आप jquery-rails के एक नए संस्करण का उपयोग कर अपने jQuery संस्करण को अपग्रेड कर सकते हैं। यह करना बहुत आसान है। यहां एक पूर्ण स्पष्टीकरण दिया गया है।

प्रोजेक्ट रूट निर्देशिका से gem list चलाकर अपना मौजूदा संस्करण देखें। आप शायद कुछ इस तरह दिखाई देंगे:

... 
i18n (0.6.0) 
jquery-rails (1.0.16, 1.0.14, 1.0.13) 
json (1.6.1) 
... 

jquery-rails मणि jQuery 1.7+ का उपयोग करता संस्करणों में 1.0.17+। इस लेखन के अनुसार, रेल 3.1 के लिए मणि का नवीनतम संस्करण 1.0.1 9 है, जो jQuery 1.7.1 का उपयोग करता है। ऐसा लगता है कि आप क्या चाहते हैं!

तो आपको अपने /javascripts फ़ोल्डर में कुछ भी छोड़ने की आवश्यकता नहीं है। इसके बजाय, अपने Gemfile में मणि के नए संस्करण को निर्दिष्ट करें।

gem "jquery-rails", "~>1.0.19" 

अजीब ~> चरित्र बंडलर बताता मणि कम से कम क्या आप (1.0.19 यहाँ) निर्दिष्ट है कि के एक संस्करण को खोजने के लिए, और किसी भी बाद में मामूली विज्ञप्ति, लेकिन नहीं: यहाँ है कि मैं क्या खान में है है अगली बड़ी रिलीज (जो इस मणि के लिए 2.0.0 है, केवल रेल 3.2+ का समर्थन करती है)।

फिर, परियोजना रूट से, bundle चलाएं और निर्दिष्ट संस्करण आपके लिए स्थापित किया जाएगा। अपने रेल ऐप को पुनरारंभ करें, पृष्ठ को फिर से लोड करें, और आपको यह सत्यापित करने में सक्षम होना चाहिए कि अब आप jQuery 1.7.1 से निपट रहे हैं।

मुझे बताएं कि यह कैसे जाता है!

चीयर्स।

+2

'बंडल शो jquery-rails' आपके द्वारा इंस्टॉल किए गए मणि के किस संस्करण को जांचने का एक तेज़ तरीका है। – blushrt

+0

यह मेरे लिए बिल्कुल काम नहीं करता है। मैं 2.0.1 चला रहा था और इसे 2.1.0 में बदल दिया, पुराने मणि को अनइंस्टॉल किया और नया इंस्टॉल किया। jQuery अभी भी 1.8 पर लोड हो रहा है जब यह 1.10 होना चाहिए। – Aristata

0

मैं संस्करण के लिए मेरी jQuery-रेल मणि संस्करण अद्यतन 3.1.2 (प्रकार: bundle show jquery-rails अपने वर्तमान jQuery-रेल संस्करण देखने के लिए, या gem list सभी जवाहरात देखने के लिए)

हालांकि मेरे वेबपेज अभी भी पुराने उपयोग कर रहा था jQuery संस्करण 1.3। यह देखने के लिए कि आप किस संस्करण का उपयोग कर रहे हैं, अपनी jquery.js फ़ाइल पर जाएं जो आपकी संपत्ति/जावास्क्रिप्ट फ़ोल्डर में रहता है, संस्करण को वहां निर्दिष्ट किया जाना चाहिए। आदेश निम्न पंक्ति जोड़कर jQuery तुम भी, साथ ही अपनी संपत्ति/javascripts/application.js फ़ाइल में jquery.js शामिल करने की आवश्यकता का उपयोग करने के बेशक :

//= require jquery 

और मामले में आप भी अन्य है जे एस पुस्तकालयों उदाहरण के लिए प्रोटोटाइप की तरह, आप निश्चित रूप से बाहर इस कड़ी के रूप में अच्छी तरह से जाँच करना चाहते हैं जाएगा: jQuery- Avoiding Conflicts with Other Libraries

वैसे भी वापस बात करने के लिए, ऊपर ZZG की सिफारिश के अनुसार, मैं लिंक खोला कि वह आपूर्ति: Latest Jquery और सचमुच की नकल की और उस वेबपृष्ठ की सामग्री को मेरी jquery.js फ़ाइल में चिपकाया। सर्वर को पुनरारंभ करने और मेरे वेबपृष्ठ को रीफ्रेश करने के बाद, मेरा jquery नवीनतम संस्करण का उपयोग कर रहा था। मेरा jQuery मेरे देव env पर स्थानीय रूप से काम कर रहा था, लेकिन तुरंत उत्पादन पर काम नहीं कर रहा था (अभी इसे समझने की कोशिश कर रहा है)।

आखिरकार, एक और चीज जो जानने के लिए उपयोगी हो सकती है, यह है कि आप हमेशा देख सकते हैं कि आपके रेल ऐप वेब पेज पर राइट क्लिक करके और आपके पृष्ठ पर क्लिक करके "आपके स्थानीय देव एनवी में कौन सा संस्करण उपयोग कर रहा है)

<script data-turbolinks-track="false" src="/assets/jquery.js?body=1"></script>

उस पर क्लिक करने से

जो संस्करण (इस उत्पादन पर काम नहीं करेगा निर्दिष्ट करता है अपने jquery.js फ़ाइल की सामग्री दिखाएगा संपत्ति पाइपलाइन सभी को संपीड़ित के बाद से: स्रोत ", तो आप इस तरह एक लिंक दिखाई देगा जावास्क्रिप्ट फ़ाइलों को एक फ़ाइल में, अर्थात् application.js)

1

रेल 4 में आप सी application.js प्रकट में जिस तरह से

निम्नलिखित के साथ एक अद्यतन jQuery

//= require jquery2 //for jquery 2 

//= require jquery3 //for jquery 3 
संबंधित मुद्दे

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