Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 为什么;bundle update";不';是否更新GEM文件以使用Rails 3.0.5?_Ruby On Rails 3_Bundler - Fatal编程技术网

Ruby on rails 3 为什么;bundle update";不';是否更新GEM文件以使用Rails 3.0.5?

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中

我尝试对我创建的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
中将
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。你是对的,这可能是一种可能性。