जवाबों:
रेल के पुराने संस्करण का उपयोग करके एक नया एप्लिकेशन बनाने के लिए मुझे यहाँ एक अविवादित विकल्प मिला ।
rails _2.1.0_ new myapp
_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
<मुख्य> '
यहां वह कमांड है जिसका मैं सामान्य रूप से उपयोग करता हूं:
rails _version_ new application_name
उदाहरण के लिए rails _2.1.0_ new my_app
यहाँ सभी उपलब्ध रेल संस्करणों की सूची दी गई है:
मुझे उपयोग करने में कुछ परेशानी हो रही थी 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
, यह रेल को भी अपडेट करेगा !!
bundle update
आवश्यकता है क्योंकि मैन्युअल अपडेट का उपयोग किया जा रहा है ( --skip-bundle
)। रेल को अपग्रेड नहीं किया जाएगा क्योंकि एक विशिष्ट संस्करण जेमफाइल (उदाहरण में 4.2.9) में निर्दिष्ट है।
--force
जेमफाइल
bundle exec rails new...
संस्करण को चलाया गया था rails
जो प्रतिस्थापित किया जा रहा है।)
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 का उपयोग करने की उम्मीद कर रहा था
जैसा कि ठीक है @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
आप किसी भी संस्करण के साथ कंकाल को उत्पन्न कर सकते हैं और आपको जो चाहिए वह चाहिए 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
या "रेल" कमांड का उपयोग उस संस्करण को करें जिसे आप वैसे भी चाहते हैं।
आपको ऐप में अपने रेल रत्न "फ्रीजिंग" पर भी नज़र डालनी चाहिए। यह तैनाती के साथ बहुत मदद करता है, विशेष रूप से साझा होस्टिंग वातावरण में।
बस RAILS_GEM_VERSION
चर को बदलें config/environment.rb
और फ्रीज रेक कार्य जारी करें:
rake rails:freeze:gems
इसे प्राप्त करने के दो तरीके हैं:
स्वीकार किए गए उत्तर में सुझाया गया एक:
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