![](/img/trans.png)
[英]Why is Rails composer only creating a basic app without features? `open_http': 404 Not Found (OpenURI::HTTPError)
[英]Why does the Rails Composer update Rails when it builds an app?
# I run these commands:
$ rvm current
ruby-2.3.3@rails500
$ 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。 参见https://github.com/RailsApps/rails-composer/issues/261和https://github.com/RailsApps/rails-composer/issues/260
您已经观察到Rails new
命令的行为。 Rails Composer是一个Rails应用程序模板,并在Rails new
成器上搭载。 Rails new
命令生成一个简单的默认Rails应用程序,然后Rails Composer对其进行修改。 Rails new
命令生成的Gemfile包含gem'rails gem 'rails', '~> 5.0.0'
。 注意~> 5.0.0
指定的“悲观版本控制”。 这意味着使用大于5.0.0且小于5.1的任何版本(可以使用任何补丁程序版本)。 当Rails new
成器运行时,它将使用简单的默认Rails应用程序提供的Gemfile更新gem,包括Rails gem。 因此,在Rails Composer运行之前,已安装Rails 5.0.1 gem。
您可以通过在没有Rails Composer应用程序模板的情况下运行Rails new
命令来观察此行为。
myapp/2.4.0@rails500 $ rvm current ruby-2.4.0@rails500 myapp/2.4.0@rails500 $ gem list | grep '^rails ' rails (5.0.0) myapp/2.4.0@rails500 $ rails -v Rails 5.0.0 myapp/2.4.0@rails500 $ rails new . . . . run bundle install . . . Installing rails 5.0.1 . . . myapp/2.4.0@rails500 $ rails -v Rails 5.0.1
总之,您遇到的问题是Rails new
命令,而不是Rails Composer。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.