Ruby on rails 3 为什么;bundle update";不';是否更新GEM文件以使用Rails 3.0.5?
我尝试对我创建的Rails 3.0.0项目使用Ruby on rails 3 为什么;bundle update";不';是否更新GEM文件以使用Rails 3.0.5?,ruby-on-rails-3,bundler,Ruby On Rails 3,Bundler,我尝试对我创建的Rails 3.0.0项目使用bundle update,希望Gemfile(以及Gemfile.lock)中的所有内容都能反映Rails 3.0.5 但它仍然是3.0.0。。。即使我运行bundle update rails,它仍然是3.0.0 出于好奇,我创建了一个全新的Rails 3.0.0项目,然后在上面运行bundle更新。。。它还说“使用rails 3.0.0”,为什么?以及如何使捆绑更新更新到3.0.5?(手动更改文件的明显方式除外) (我甚至尝试在Gemfile中
bundle update
,希望Gemfile
(以及Gemfile.lock
)中的所有内容都能反映Rails 3.0.5
但它仍然是3.0.0。。。即使我运行bundle update rails
,它仍然是3.0.0
出于好奇,我创建了一个全新的Rails 3.0.0项目,然后在上面运行bundle更新。。。它还说“使用rails 3.0.0”,为什么?以及如何使捆绑更新更新到3.0.5?(手动更改文件的明显方式除外)
(我甚至尝试在Gemfile
中将sqlite3ruby
更改为sqlite3
,因为3.0.5似乎使用了sqlite3
。而rails
和sqlite3
是Gemfile
中列出的唯一两个宝石。)您已经得到了答案:手动更改gem版本并运行bundle update rails
我怀疑您的gem文件中有gem'rails',3.0.0'
。如果指定了确切的版本,则运行bundle update rails
不会更改版本
这里有一些关于在gem文件中指定gem版本的不同方法的信息
是的,你可能有
gem 'rails', '3.0.0'
换成
gem 'rails', '~>3.0.0'
gem 'rails', '~>3.0'
这只会升级rails的次要版本(3.0.5和3.0.6…)。或者你可以把它改成
gem 'rails', '~>3.0.0'
gem 'rails', '~>3.0'
如果你想升级到rails 3.1而不是4.0,这是在Google上搜索“bundler wont update”时的一个最佳结果,因此我添加以下内容作为另一个答案。我在我的一个项目中遇到了这个问题
在我的一个项目中,我有一个.bundle/config
文件,它有以下行:
BUNDLE_FROZEN: "1"
这导致包更新
无效。我删除了上面的一行,它又开始更新了。所以我猜你的答案是,'3.0.0'
在Gemfile中意味着使用准确的版本。如果我想在使用bundle update
时将其更新为最新版本,那么就使用>3.0.0
,虽然我不知道这是否是推荐的,但请确保项目使用最新的rails。你是对的,这可能是一种可能性。