回答:
_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用にまだ生成されています)。
掘りのビットの後、私が見つかりました。記事によるマイケルTrojanek別のアプローチでは。これは、目的のバージョンのRailsを指定するGemfileを含むフォルダーを作成し、bundle exec rails...
Bundlerが適切なバージョンのを実行するように使用することで機能し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
)。特定バージョンをGemfileで指定されているため、レールはアップグレードされません(例では4.2.9。)
--force
はGemfileを上書きしています
bundle exec rails new...
のRANバージョンrails
両端アップが置き換えられていることをGemfileで指定します。)
gem 'rails', '5.0.0.1' >> Gemfile
実行bundle exec rails new
した後、それgem 'rails', '~> 5.0.0', '>= 5.0.0.1'
はGemfileにあります。を実行bundle update
すると、レールが5.0.4(Gemfile.lock内)に更新されますが、レールバージョン5.0.0.1を使用する予定でした
@mikejがRails 5.0.0以降で正しく指摘したとおり、次の手順に従う必要があります。
アプリケーション用のディレクトリをGemfileとともに作成して、目的のRailsバージョンを指定し、bundleに依存するgemをインストールさせます。
$ 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
これを実現するには2つの方法があります。
受け入れられた回答で提案されているもの:
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
代替方法は、Railsプロジェクトを初期化する前に、目的のRailsバージョンで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