Saya memiliki dua versi rel (2.1.0 dan 2.2.2) yang diinstal di komputer saya.
Ketika saya membuat aplikasi baru, apakah mungkin untuk menentukan bahwa saya ingin menggunakan versi yang lebih lama (2.1.0)?
ruby-on-rails
hectorsq
sumber
sumber
Jawaban:
Di sini saya menemukan opsi tidak berdokumen untuk membuat aplikasi baru menggunakan versi Rails yang lebih lama.
sumber
_3.1.3_
/home/ninad/.rbenv/versions/1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems.rb:314:in sample_app barubin_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> 'Ini adalah perintah yang saya gunakan secara normal:
sebagai contoh
rails _2.1.0_ new my_app
Berikut adalah daftar semua versi rel yang tersedia:
http://rubygems.org/gems/rails/versions
sumber
Saya mengalami masalah dalam menggunakan
rails _version_ new application_name
(proyek yang dihasilkan masih dihasilkan untuk versi Rails terbaru yang diinstal.)Setelah sedikit menggali saya menemukan sebuah artikel oleh Michael Trojanek dengan pendekatan alternatif. Ini bekerja dengan membuat folder dengan Gemfile menentukan versi Rails yang diinginkan dan kemudian menggunakan
bundle exec rails...
sehingga Bundler mengurus menjalankan versi yang sesuairails
. misalnya untuk membuat proyek Rails 4.2.9 yang baru, langkah-langkahnya adalah:sumber
bundle update
, itu akan memperbarui rel juga !!bundle update
diperlukan karena pembaruan manual sedang digunakan (--skip-bundle
). Rails tidak akan ditingkatkan karena versi spesifik ditentukan dalam Gemfile (4.2.9 dalam contoh.)--force
sedang menimpa Gemfilebundle exec rails new...
menjalankan versi yangrails
ditentukan dalam Gemfile yang akhirnya diganti.)gem 'rails', '5.0.0.1' >> Gemfile
dan setelah menjalankanbundle exec rails new
dengan opsi --force, itugem 'rails', '~> 5.0.0', '>= 5.0.0.1'
di Gemfile. Sekarang ketika saya menjalankanbundle update
, itu memperbarui rel ke 5.0.4 (di Gemfile.lock), tapi saya mengharapkan untuk menggunakan versi rel 5.0.0.1Seperti yang ditunjukkan dengan tepat oleh @mikej untuk Rails 5.0.0 atau lebih tinggi , Anda harus mengikuti langkah-langkah ini:
Buat direktori untuk aplikasi Anda bersama Gemfile untuk menentukan versi Rails yang Anda inginkan dan biarkan bundler menginstal permata dependen:
Pastikan versi rel yang benar telah dipasang:
$ bundle exec rails -v
Sekarang buat aplikasi Anda, biarkan Rails membuat Gemfile baru (atau lebih tepatnya menimpa yang sudah ada dengan menggunakan
--force
flag) dan alih-alih menginstal bundel (--skip-bundle
) perbarui secara manual:Jika Anda memeriksa entri untuk rel
Gemfile
, itu harus seperti ini:Anda harus memperbarui ke versi persis yang dibutuhkan untuk aplikasi:
Sekarang, langkah terakhir:
sumber
Anda bisa membuat kerangka dengan versi mana pun dan membutuhkan kerangka yang Anda inginkan di
config/environment.rb
:atau gunakan perintah "rails" dari versi yang Anda inginkan.
sumber
Anda juga harus melihat "membekukan" permata Rails Anda ke dalam aplikasi. Ini banyak membantu dengan penyebaran, khususnya di lingkungan hosting bersama.
Cukup ganti
RAILS_GEM_VERSION
variabel dalamconfig/environment.rb
dan keluarkan tugas pembekuan penggaruk:sumber
Ada dua cara untuk mencapai ini:
satu seperti yang disarankan dalam jawaban yang diterima:
dan metode alternatif adalah membuat gemfile dengan versi rel yang diinginkan sebelum memulai proyek rel
Saya telah menulis tentang ini secara rinci dalam artikel saya
sumber