2017-03-03 83 views
1

如果我只是在我的用户文件夹中,而我做rails -v我得到5.0.2。但是,如果我进入我的项目的目录我得到5.0.0.1。根据文件夹的不同导轨版本

为什么会有差异,我如何更新我的项目是最新版本的导轨?

+0

查看项目中的'Gemfile' /'Gemfile.lock'文件。这就是指定rails的项目版本。也阅读Bundler。 –

+1

也可以是与RVM或rbenv耦合的'.ruby-version'文件。 –

回答

1

Bundler使用Gemfile.lock来保存宝石的版本和名称。当它被检入版本控制时,它可以确保你的所有宝石在所有机器上完全相同。这在不断变化的世界中促进稳定。

Gemfile.lock由bundler生成,并基于Gemfile的语法系统,您可以在那里指定版本。

如果您想更新铁轨,你可以运行:

bundle update rails 

你应该小心与更新的宝石。确保您有更好的测试覆盖率并在更新后运行测试套件,以确保您没有因为更新而损坏任何东西。

下面是捆绑器文档的Gemfile.lock page的链接,它涵盖了很多这些主题。

而且,这里有一个链接到Gemfile文档。

+0

我最终只需将我的gem文件从5.0.0.1更改为5.0.2,然后运行捆绑软件安装,然后捆绑更新并运行。我已经运行了软件包更新导轨,但由于某种原因它没有更新该特定的应用程序。 – blueduckyy

+0

是的。这与您在Gemfile中声明您的rails gem时使用的语法有关,例如'宝石轨','5.0.0.1'。如果你已经使用了'〜>'语法,它会更新而不需要进行明确的更改,因为版本更改不会超过5.1。看到这个答案:http://stackoverflow.com/questions/5101591/what-does-mean-in-a-gem-file –