একটি নতুন অ্যাপ্লিকেশন তৈরি করার সময় ব্যবহারের জন্য রেল সংস্করণ নির্দিষ্ট করে


227

আমার কম্পিউটারে আমার দুটি সংস্করণ রেল রয়েছে (২.১.০ এবং ২.২.২)।

যখন আমি একটি নতুন অ্যাপ্লিকেশন তৈরি করি, তখন কি এটি উল্লেখ করা সম্ভব যে আমি পুরানো (২.১.০) সংস্করণটি ব্যবহার করতে চাই?


উত্তর:


503

রেলের পুরানো সংস্করণ ব্যবহার করে একটি নতুন অ্যাপ্লিকেশন তৈরি করার জন্য আমি এখানে একটি অননুমোদিত বিকল্প পেয়েছি ।

rails _2.1.0_ new myapp 

1
আপনার কাছে এটি গ্রহণযোগ্য উত্তরে পরিবর্তন করা উচিত কারণ এটি রেল 2 এবং 3 এর জন্য কাজ করে you কেলটিয়ার উত্তরটি আর কাজ করবে না যদি আপনি 3 টি ইনস্টল ইনস্টল করে থাকেন এবং একটি রেল 2 অ্যাপ্লিকেশন চান।
পিটার ব্রাউন

ত্রুটিযুক্ত যে 3 টি রিয়েল ইনস্টল থাকা 2.3.5 এর জন্য ব্যর্থ হয় - ম্যাক ওএস এক্স স্নো লেপার্ডে এই মডিউলগুলি ইনস্টল করেই পরীক্ষা করা হয়েছে: রেলস (3.0.5, 2.3.5, 2.2.2, 1.2.6)
মাইকের

13
এটি রুবিগেমস কার্যকারিতা, রেলের কার্যকারিতা নয়; এটি তাই রেল সংস্করণের উপর নির্ভরশীল নয় এবং অন্যান্য রত্নগুলির জন্য কাজ করবে। (ধন্যবাদ, এটি একটি দুর্দান্ত উত্তর!)
ক্যালরিয়ন

2
3.1.3 ব্যবহার করার সময় আমি ত্রুটি পেয়েছি যখন 3.1.3 এবং 3.2.0.rc1 ইনস্টল করা আছে। এখানে ত্রুটি --- [নিনাদ @ লোকালহোস্ট ডেভেল] $ _3.1.3_রেলগুলি নতুন নমুনা_এপ / হোমে / নিনাদ / আরবেনভ / সংস্করণগুলি / 1.9.2-p290/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 <main> '
নিনাদ

এখন 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..., যাতে Bundler যথাযথ সংস্করণে চলছে যত্ন নেয় 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প্রতিস্থাপিত হওয়ার পরে শেষ হয়েছিল))
মাইকেজ

1
আমি করেছি gem 'rails', '5.0.0.1' >> Gemfileএবং --for bundle exec rails newবিকল্প দিয়ে চালানোর পরে , এটি gem 'rails', '~> 5.0.0', '>= 5.0.0.1'জেমফাইলে। এখন যখন আমি bundle updateদৌড়ব, এটি রেলগুলি 5.0.4 (জেমফিল.লকে) আপডেট করবে, তবে আমি রেল সংস্করণ 5.0.0.1 ব্যবহার করার প্রত্যাশা করছিলাম
মিশ্র

9

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

আরভিএম ব্যবহার করুন রুবিভার্সন
অপুরভ

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

এবং বিকল্প পদ্ধতিটি হ'ল রেল প্রকল্প শুরু করার আগে কাঙ্ক্ষিত রেল সংস্করণ সহ রত্ন তৈরি করা create

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

আমি আমার নিবন্ধে বিশদ এই সম্পর্কে লিখেছি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.