2011-01-14 13 views
39

मुझे बस यह नहीं मिला। मैंने सोचा, बंडलर रत्नों के बीच संस्करण संघर्षों को हल करने के लिए विकसित किया गया था। तो मुझे बस require "bundler/setup" होना है और सब कुछ ठीक है, यह जानकर कि बंडलर मेरे सभी रत्नों और उनकी निर्भरताओं के सही संस्करण लोड करेगा। अब, आरवीएम एकाधिक रूबी प्रबंधित करने के लिए बहुत अच्छा है, मुझे पता है, लेकिन मुझे जेम्ससेट सुविधा की परवाह क्यों करनी चाहिए? क्या मुझे यहाँ कुछ याद आती है? क्या यह मेरे विकास को और भी आसान बना सकता है? हो सकता है कि आप में से कुछ मुझे RVM + बंडलर दोनों विकास, उत्पादन के लिए वर्कफ़्लो पर कुछ संकेत दे सकते हैं।जब मैं बंडलर का उपयोग करता हूं तो मुझे आरवीएम की जेम्ससेट सुविधा की परवाह क्यों करनी चाहिए?

मुझे यह भी नहीं पता कि RVM किसी अन्य रूबी पर स्विच करना शुरू कर देता है। मुझे पता है कि मेरे पास मेरी परियोजना में .rvmrc फ़ाइल हो सकती है, लेकिन क्या मुझे इस निर्देशिका में cd है ताकि स्विच होता है?

इसके अलावा, मैं आमतौर पर विकास के लिए यात्री का उपयोग के बाद से, Passenger.prefpane करने के लिए धन्यवाद, में एकीकरण मैक ओएस महान है। क्या मैं अभी भी आरवीएम के साथ ऐसा कर सकता हूं या ऐसा करने का एक बेहतर तरीका है? यात्री.rvmrc फाइलों को पहचानते हैं और सही जेम्ससेट पर स्विच करते हैं?

+2

हां, आरवीएम एक शेल फ़ंक्शन के रूप में सीडी को फिर से परिभाषित करता है जो निर्देशिकाओं को बदलते समय .rvmrc फ़ाइलों की जांच करता है। – Sam

उत्तर

20

जब मैं बंडलर का उपयोग करता हूं तो मुझे आरवीएम की जेम्ससेट सुविधा की परवाह क्यों करनी चाहिए?

आपको नहीं करना चाहिए।

ठीक है, अगर तुम करना चाहते , आप देखभाल के बारे में, ज़ाहिर है, तो मैं बेहतर कहना चाहिए कर सकते हैं "आप की जरूरत नहीं है।"

मैंने अभी podcast interview with one of the Bundler core team members की बात सुनी है, जो मूल रूप से कहा था कि चूंकि उसने बंडलर का उपयोग करना शुरू किया था, इसलिए उसने जेम्ससेट का उपयोग करना बंद कर दिया क्योंकि वे अनावश्यक हैं।

Here's a blog post that discusses the same issue, with some examples.

+2

हालांकि, फिलहाल आरवीएम और बंडलर अच्छी तरह से काम नहीं कर रहे हैं। नवीनतम विवरण के लिए http://beginrescueend.com/integration/bundler/ देखें। अब के लिए मैं रत्नों को साझा करने वाली विभिन्न परियोजनाओं पर रूबी संस्करणों को स्विच करते समय सेगमेंटेशन दोषों से बचने के लिए रत्नों का उपयोग कर रहा हूं। – foz

6

जब मैं विरासत कोड से निपट रहा हूं या अन्य गैर-रेल रूबी परियोजनाओं को तोड़ रहा हूं, जो कि बंडल मार्ग पर जाने के कारणों के लिए नहीं हैं, तो रत्न इतनी शानदार चीज है। रत्नों के विकास के दौरान मुझे रत्नों को अमूल्य लगता है। ताजा निर्मित मणि के बीच स्विच करने और परीक्षण करने के लिए कई परीक्षण वातावरण होने के लिए अच्छा लगा।

यात्री मेरे ज्ञान के सर्वोत्तम में .rvmrc नहीं पढ़ता है। आप अलग-अलग रूबी के तहत यात्री में विभिन्न परियोजनाओं को अपने ज्ञान के सर्वश्रेष्ठ भाग में नहीं चला सकते हैं। वैश्विक रत्न में मेरे डिफ़ॉल्ट रेल सेटअप में केवल bundler और rake है। मैंने बंडलर को वहां से ले जाने दिया और बाकी रत्नों को प्रोजेक्ट के अनुसार प्रबंधित किया जैसे आप वर्णन करते हैं। बहुत अच्छी तरह से काम करता है।

+0

क्या इसका मतलब है कि आपकी प्रत्येक परियोजना के लिए आपके पास एक स्वतंत्र रत्न है? मेरा मतलब है कि आप अपने "डिफ़ॉल्ट रेल सेटअप" के बारे में बात कर रहे हैं। कुछ बिंदु पर यह सेटअप शायद एक ऐसे राज्य में विकसित होता है जहां यह परियोजना विशिष्ट है। क्या आपके पास तब तक एक कस्टम रत्न है?आप अपने विकास मशीन पर अपने आवेदन कैसे चलाते हैं? – t6d

+0

हां, मेरे पास मेरी सभी गैर-रेल परियोजनाओं और रेल के लिए एक रत्न (जिसमें केवल बंडलर है) के लिए स्वतंत्र रत्न हैं। एक रेल परियोजना के लिए सभी मणि आवश्यकताओं, मैं बंडलर हैंडल देता हूं - उदाहरण के लिए 'बंडल निष्पादन रेल सर्वर' या 'बंडल निष्पादन रेक'। इसलिए, मेरी जेमफाइल विकसित होती है क्योंकि रेल परियोजनाएं विकसित होती हैं लेकिन 'रेल' रत्न नहीं होती है। – anshul

1

आप निश्चित रूप से gemsets का उपयोग करता है, तो आप कभी भी अपने बंडलर संस्करण को बदलने के लिए होने की आशा करनी चाहिए। और आप रत्नों का प्रबंधन करने के लिए रत्नों का उपयोग कर सकते हैं जो विशेष रूप से आपके रेल ऐप (वाइबल इत्यादि) से कोई फर्क नहीं पड़ता।