답변:
내가 발견 여기 레일의 이전 버전을 사용하여 새 응용 프로그램을 만들 수있는 문서화되지 않은 옵션을 선택합니다.
rails _2.1.0_ new myapp
_3.1.3_new sample_app /home/ninad/.rbenv/versions/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> '
내가 정상적으로 사용하는 명령은 다음과 같습니다.
rails _version_ new application_name
예를 들어 rails _2.1.0_ new my_app
지금까지 사용 가능한 모든 레일 버전 목록은 다음과 같습니다.
사용 중에 문제 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
bundle update레일도 업데이트됩니다!
bundle update수동 업데이트를 사용 중이므로 @devel 이 필요합니다 ( --skip-bundle). Gemfile에 특정 버전 (예 : 4.2.9)이 지정되어 레일이 업그레이드되지 않습니다.
--force는 Gemfile을 덮어 쓰고 있습니다
bundle exec rails new...의 버전을 rails지정합니다 (Gemfile 에 지정된 버전을 교체 했기 때문에 ).
gem 'rails', '5.0.0.1' >> Gemfile실행 한 후에 . 이제 실행 하면 레일이 5.0.4 (Gemfile.lock에서)로 업데이트되지만 레일 버전 5.0.0.1을 사용할 것으로 예상되었습니다.bundle exec rails newgem 'rails', '~> 5.0.0', '>= 5.0.0.1'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
이를 달성하는 두 가지 방법이 있습니다.
허용 된 답변에서 제안 된 것과 같이 :
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
나는 내 기사 에서 이것에 대해 자세히 썼다.