2017-01-06 11 views
0
# I run these commands: 
$ rvm current 
[email protected] 
$ gem list | grep '^rails ' 
rails (5.0.1, 5.0.0) 
$ gem uninstall rails -v 5.0.1 
Successfully uninstalled rails-5.0.1 
$ gem uninstall railties -v 5.0.1 
Successfully uninstalled railties-5.0.1 
$ gem list | grep railties 
railties (5.0.0) 
$ rails -v 
Rails 5.0.0 
$ rails new . -m \ 
https://raw.github.com/RailsApps/rails-composer/master/composer.rb 
# After I answer all the prompts, a Gemfile is created, which requires 
# rails '~> 5.0.1'. After running to completion, Rails Composer leaves 
# me with Rails 5.0.1: 
$ rails -v 
Rails 5.0.1 

私は明示的にRailsの5.0.1を要求しませんでした。それでなぜ私はそれを手に入れているのですか? Rails Composerを妨害しているようです。あなたがRails newコマンドの振る舞いを観察してきました https://github.com/RailsApps/rails-composer/issues/261https://github.com/RailsApps/rails-composer/issues/260Rails Composerは、アプリケーションをビルドするときにRailsを更新するのはなぜですか?

答えて

1

を参照してください。 Rails Composerは、Railsアプリケーションテンプレートであり、Rails newジェネレータでピギーバックします。 Rails newコマンドは単純なデフォルトのRailsアプリケーションを生成し、その後Rails Composerはそれを変更します。 Rails newコマンドによって生成されたGemfileには、gem 'rails', '~> 5.0.0'が含まれています。 ~> 5.0.0で指定された「悲観的なバージョン管理」に注意してください。これは、5.0.0以上5.1未満の任意のバージョンを使用することを意味します(パッチバージョンは使用できます)。 Rails newジェネレータが実行されると、単純なデフォルトのRailsアプリケーションによって提供されるGemfileを使用して、Railsの宝石を含む宝石を更新します。したがって、Rails Composerを実行する前にRails 5.0.1 gemがインストールされています。

あなたはRailsの作曲アプリケーションテンプレートなしRails newコマンドを実行すると、この動作を観察することができます。要約すると

myapp/[email protected] $ rvm current [email protected] myapp/[email protected] $ gem list | grep '^rails ' rails (5.0.0) myapp/[email protected] $ rails -v Rails 5.0.0 myapp/[email protected] $ rails new . . . . run bundle install . . . Installing rails 5.0.1 . . . myapp/[email protected] $ rails -v Rails 5.0.1

、あなたの問題は、Railsのnewコマンドではなく、Railsの作曲家です。

+0

ありがとう、Daniel!それを回避する方法もあります。 'rails _5.0.0_ new'として 'rails new'を起動すると、新しいアプリケーションでRails 5.0.0が使用されます。私はこれをRails Composerで試してみたところ、うまく動作していました。 –

+0

申し訳ありません。私はバックティックでコマンドを逃れることを忘れていた。ありがとう、ダニエル!それを回避する方法もあります。 'rails _5.0.0_ new'''llとしてrails newを起動すると、新しいアプリケーションでRails 5.0.0が使用されます。私はこれをRails Composerで試してみたところ、うまく動作していました。 –

関連する問題