नया एप्लिकेशन बनाते समय उपयोग करने के लिए रेलिंग संस्करण निर्दिष्ट करना


227

मेरे कंप्यूटर में रेल के दो संस्करण (2.1.0 और 2.2.2) हैं।

जब मैं एक नया एप्लिकेशन बनाता हूं, तो क्या यह निर्दिष्ट करना संभव है कि मैं पुराने (2.1.0) संस्करण का उपयोग करना चाहता हूं?


जवाबों:


503

रेल के पुराने संस्करण का उपयोग करके एक नया एप्लिकेशन बनाने के लिए मुझे यहाँ एक अविवादित विकल्प मिला ।

rails _2.1.0_ new myapp 

1
आपको इसे स्वीकार किए गए उत्तर में बदलना चाहिए क्योंकि यह रेल 2 और 3 के लिए काम करता है। 3. केल्टिया का जवाब अब काम नहीं करेगा यदि आपके पास रेल 3 स्थापित है और रेल 2 ऐप चाहते हैं।
पीटर ब्राउन

इर्रोनस है कि रेल 3 स्थापित होना 2.3.5 के लिए विफल रहता है - बस इन मॉड्यूल के साथ मैक ओएस एक्स स्नो लेपर्ड पर परीक्षण किया गया: रेल (3.0.5, 2.3.5, 2.2.2, 1.2.6)
माइक

13
यह RubyGems कार्यक्षमता है, न कि रेल कार्यक्षमता; इसलिए यह रेल संस्करण पर निर्भर नहीं है, और अन्य रत्नों के लिए काम करेगा। (धन्यवाद, यह एक महान जवाब है!)
कैल्रियन

2
3.1.3 और 3.2.0.rc1 स्थापित होने पर 3.1.3 का उपयोग करते समय मुझे त्रुटि मिलती है। यहाँ त्रुटि है --- [निनाद @ लोकलहोस्ट डेवेल] $ rails _3.1.3_नया सैंपल_एप्प / हॉम / नीनद /.रेंबव / अवतरण / १.९ २.२-२२०/lib/ruby/site_ruby/1.9.1/rubygems.rb:314:in bin_path': can't find gem railties (["3.1.3"]) with executable rails (Gem::GemNotFoundException) from /home/ninad/.rbenv/versions/1.9.2-p290/bin/rails:19:in <मुख्य> '
निनाद

बहुत उपयोगी है कि अब 4.0.0 बाहर है!
जेसन

67

यहां वह कमांड है जिसका मैं सामान्य रूप से उपयोग करता हूं:

rails _version_ new application_name

उदाहरण के लिए rails _2.1.0_ new my_app

यहाँ सभी उपलब्ध रेल संस्करणों की सूची दी गई है:

http://rubygems.org/gems/rails/versions


26

मुझे उपयोग करने में कुछ परेशानी हो रही थी rails _version_ new application_name(परिणामी परियोजना अभी भी स्थापित नवीनतम संस्करण के लिए उत्पन्न हुई थी।)

खुदाई का एक सा होने के बाद मैंने पाया एक लेख द्वारा माइकल Trojanek एक वैकल्पिक दृष्टिकोण के साथ। यह Gemfile के साथ एक फ़ोल्डर बनाकर काम करता है, जो रेल के वांछित संस्करण को निर्दिष्ट करता है और फिर बुंडलर bundle exec rails...के उचित संस्करण को चलाने का ध्यान रखता है rails। एक नई रेल बनाने के लिए जैसे 4.2.9 परियोजनाएं चरण हैं:

mkdir myapp
cd myapp
echo "source 'https://rubygems.org'" > Gemfile
echo "gem 'rails', '4.2.9'" >> Gemfile
bundle install

bundle exec rails new . --force --skip-bundle
bundle update

मुझे नहीं लगता कि इसकी आवश्यकता है bundle update, यह रेल को भी अपडेट करेगा !!
राजकरन मिश्रा

@devel की bundle updateआवश्यकता है क्योंकि मैन्युअल अपडेट का उपयोग किया जा रहा है ( --skip-bundle)। रेल को अपग्रेड नहीं किया जाएगा क्योंकि एक विशिष्ट संस्करण जेमफाइल (उदाहरण में 4.2.9) में निर्दिष्ट है।
माइक जूल

--forceजेमफाइल
राजकरन मिश्रा

हां, लेकिन जो नया जेमफाइल लिखा जाता है, वह अभी भी उन रेल्स के संस्करण को निर्दिष्ट करता है जो हम चाहते थे (क्योंकि जेमफाइल में निर्दिष्ट bundle exec rails new...संस्करण को चलाया गया था railsजो प्रतिस्थापित किया जा रहा है।)
mikej

1
मैंने किया gem 'rails', '5.0.0.1' >> Gemfileऔर इसके bundle exec rails newसाथ चलने के बाद --force विकल्प, gem 'rails', '~> 5.0.0', '>= 5.0.0.1'जेमफाइल में। अब जब मैं दौड़ता हूं bundle update, तो इसकी रेलिंग 5.0.4 (जेमफाइल.लॉक में) अपडेट हो रही है, लेकिन मैं रेल संस्करण 5.0.0.1 का उपयोग करने की उम्मीद कर रहा था
राजकरन मिश्रा

9

जैसा कि ठीक है @mikej द्वारा रेल 5.0.0 या उससे ऊपर के लिए , आपको इन चरणों का पालन करना चाहिए:

अपने वांछित रेल संस्करण को निर्दिष्ट करने के लिए जेमफाइल के साथ अपने आवेदन के लिए एक निर्देशिका बनाएं और बंडलर को निर्भर रत्नों को स्थापित करने दें:

$ mkdir myapp
$ cd myapp
$ echo "source 'https://rubygems.org'" > Gemfile
$ echo "gem 'rails', '5.0.0.1'" >> Gemfile
$ bundle install

जांचें कि रेल का सही संस्करण स्थापित किया गया है: $ bundle exec rails -v

अब अपना एप्लिकेशन बनाएं, रेल्स को एक नया जेमफाइल बनाने दें (या --forceझंडे का उपयोग करके मौजूदा एक को अधिलेखित करें ) और बंडल को स्थापित करने के बजाय ( --skip-bundle) मैन्युअल रूप से अपडेट करें:

$ bundle exec rails new . --force --skip-bundle

यदि आप रेल के प्रवेश की जांच करते हैं Gemfile, तो यह इस तरह होना चाहिए:

gem 'rails', '~> 5.0.0', '>= 5.0.0.1'

आपको इसे एप्लिकेशन के लिए आवश्यक सटीक संस्करण में अपडेट करना चाहिए:

gem 'rails', '5.0.0.1'

अब, अंतिम चरण:

$ bundle update

3

आप किसी भी संस्करण के साथ कंकाल को उत्पन्न कर सकते हैं और आपको जो चाहिए वह चाहिए config/environment.rb:

# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.1.2' unless defined? RAILS_GEM_VERSION

या "रेल" कमांड का उपयोग उस संस्करण को करें जिसे आप वैसे भी चाहते हैं।


3

आपको ऐप में अपने रेल रत्न "फ्रीजिंग" पर भी नज़र डालनी चाहिए। यह तैनाती के साथ बहुत मदद करता है, विशेष रूप से साझा होस्टिंग वातावरण में।

बस RAILS_GEM_VERSIONचर को बदलें config/environment.rbऔर फ्रीज रेक कार्य जारी करें:

rake rails:freeze:gems

rvm उपयोग रूबीवर्सन का उपयोग करें
अपूर्व

1

इसे प्राप्त करने के दो तरीके हैं:

स्वीकार किए गए उत्तर में सुझाया गया एक:

gem install rails -v 2.1.0 #only when the gem has not been installed in the desired ruby version you are using, so that you don't get error on next step
rails _2.1.0_ new my_app

और वैकल्पिक विधि रेल परियोजना को शुरू करने से पहले वांछित रेल संस्करण के साथ मणिफाइल बनाना है

mkdir my_app
cd my_app
echo "source 'https://rubygems.org'" > Gemfile
echo "gem 'rails', '2.1.0'" >> Gemfile
bundle install

bundle exec rails new . --force --skip-bundle

मैंने अपने लेख में इसके बारे में विवरण में लिखा है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.