为什么"捆绑更新"不更新Gemfile以使用Rails 3.0.5?

nop*_*ole 11 bundler ruby-on-rails-3

我尝试使用bundle update我创建的Rails 3.0.0项目,期望Gemfile(以及Gemfile.lock)中的所有内容都反映出rails 3.0.5 ......

但它仍然是3.0.0 ...即使我跑bundle update rails,它仍然保持3.0.0

出于好奇,我创建了一个全新的Rails 3.0.0项目,然后在其上运行bundle update ...它仍然说"使用rails 3.0.0",为什么?以及如何bundle update更新到3.0.5?(除了手动更改Gemfile的明显方法)

(我甚至试图改变sqlite3-rubysqlite3Gemfile,因为3.0.5似乎使用sqlite3来代替.而railssqlite3是唯一2颗宝石中列出Gemfile)

Jam*_*mes 15

您已经得到了答案:手动更改宝石版本并运行bundle update rails.

我怀疑你gem 'rails', '3.0.0'的Gemfile中有.bundle update rails如果您具有指定的确切版本,则运行不会更改版本.

以下是有关在Gemfile中指定gem版本的不同方法的一些信息.

http://gembundler.com/rationale.html


drh*_*ner 14

是的,你可能有

gem 'rails', '3.0.0'
Run Code Online (Sandbox Code Playgroud)

改为

gem 'rails', '~>3.0.0'
Run Code Online (Sandbox Code Playgroud)

这只会升级次要版本的rails(3.0.5和3.0.6 ......).或者您可以将其更改为

gem 'rails', '~>3.0'
Run Code Online (Sandbox Code Playgroud)

如果要升级到rails 3.1而不是4.0