我最近将我正在处理的rails项目从2.0.5升级到2.3.2。我注意到在vendor / rails中有一个2.0.5 rails文件的本地副本,我想知道我是否应该将2.3.2 rails文件的本地副本放在那里或者只是将它们留下来?什么是更好的做法?
答案 0 :(得分:3)
是。位于vendor/rails
的Rails副本实际上优先于系统范围内安装的Rails gems使用 - 换句话说,虽然您升级了Rails安装,但您的应用程序实际上仍在2.0.5上运行。
vendor/rails
目录存在,因此您可以将应用程序“冻结”到特定版本的Rails,从而使其不易受到正在运行的计算机配置更改的影响。这是非常有用的,有一种自动管理目录的方法。要删除vendor/rails
中现有版本的Rails,请转到Rails项目目录的根目录并执行以下操作:
rake rails:unfreeze
然后将系统中最新的Rails gem安装到vendor/rails
,执行:
rake rails:freeze:gems
您可以使用vendor/rails
执行其他一些操作。查看rake -T
以获取完整的命令列表。
P.S。如果你听到有人谈论他们的Rails安装被“贩卖”,这就是他们的意思。
答案 1 :(得分:1)
与此同时,事情发生了一些变化。
rake rails:freeze
和
rake rails:unfreeze
已弃用。相反,你应该使用:
bundle install --path vendor/bundle
和
bundle install --system
切换回来。