[ruby-on-rails] 새 응용 프로그램을 작성할 때 사용할 레일 버전 지정

컴퓨터에 두 가지 버전의 레일 (2.1.0 및 2.2.2)이 설치되어 있습니다.

새 응용 프로그램을 만들 때 이전 (2.1.0) 버전을 사용하도록 지정할 수 있습니까?



답변

내가 발견 여기 레일의 이전 버전을 사용하여 새 응용 프로그램을 만들 수있는 문서화되지 않은 옵션을 선택합니다.

rails _2.1.0_ new myapp 


답변

내가 정상적으로 사용하는 명령은 다음과 같습니다.

rails _version_ new application_name

예를 들어 rails _2.1.0_ new my_app

지금까지 사용 가능한 모든 레일 버전 목록은 다음과 같습니다.

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


답변

사용 중에 문제 rails _version_ new application_name가 발생했습니다 (최신 버전의 Rails를 설치 한 결과 프로젝트가 생성되었습니다.)

약간의 파고 후에 나는 Michael Trojanek 의 다른 접근법으로 기사 를 찾았 습니다 . 이것은 원하는 Rails 버전을 지정하는 Gemfile로 폴더를 생성 한 다음 Bundler가 적절한 버전의 실행을 처리하도록 사용하여 작동합니다 . 예를 들어 새로운 Rails 4.2.9 프로젝트를 만들려면 다음 단계를 따르십시오.bundle exec rails...rails

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


답변

Rails 5.0.0 이상에 대해 @mikej가 올바르게 지적했듯이 다음 단계를 수행해야합니다.

원하는 Rails 버전을 지정하고 번 들러가 종속 gem을 설치할 수 있도록 Gemfile과 함께 애플리케이션 디렉토리를 만듭니다.

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

올바른 버전의 레일이 설치되어 있는지 확인하십시오. $ bundle exec rails -v

이제 애플리케이션을 생성하고 Rails가 새 Gemfile을 생성하도록하거나 --force플래그 를 사용하여 기존 Gemfile을 덮어 쓰도록 하고 번들 ( --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”명령을 사용하십시오.


답변

또한 Rails 보석을 앱에 “고정”시키는 것도 살펴보십시오. 이는 특히 공유 호스팅 환경에서의 배포에 많은 도움이됩니다.

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

다른 방법은 레일 프로젝트를 초기화하기 전에 원하는 레일 버전으로 gemfile을 만드는 것입니다

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

나는 내 기사 에서 이것에 대해 자세히 썼다.