繁体   English   中英

管理许多不同版本的Ruby on Rails应用程序

[英]Managing many Ruby on Rails applications of different versions

我正在使用AWDR书籍学习Ruby on Rails,并且必须具体说明我在本地计算机上运行的Rails和Ruby版本。 我刚才发现我需要推出红宝石1.8.7回红宝石1.8.6 这里 我还需要回滚Rails以支持scaffold方法,因此我可以轻松地开始本教程。

我的问题是:当我开始在现实世界中承包,开发和部署项目时,我将如何管理所有这些不同的版本?

在我看来,Rail对遗留代码的低容忍度否定了其易用性理念! 但是我敢肯定,我会越来越喜欢RoR。

至于Rails,您可以做的是冻结您的版本,例如:

  1. 确保安装正确的Rails版本,假设您想要版本2.2.2: gem install rails v = 2.2.2
  2. 使用项目本身冻结和打包Rails: rake rails:freeze:edge RELEASE=2.2.2

现在,您将在项目的vendor文件夹中找到Rails,因此不必在部署机器上安装Rails。

对于Ruby,我喜欢Ruby Version Manager (RVM),这是管理Ruby版本的最简单方法。

我相信,最新版本的Agile Web是针对2.2.2编写的。 对于这个基本的应用程序,他们会引导您完成操作,我非常确定它应可与2.3.x一起使用

关于您如何跟上进度的问题的答案是,您可以根据需要更新应用程序,并阅读api和Changleogs,以查找已更改的内容并修复升级失败的内容。 解决此问题的一种好方法是拥有一个具有良好测试覆盖范围的良好测试套件。

RubyGems是Ruby的软件包管理器。 您可以根据需要安装任意数量的gem(程序包)。 您可以通过运行sudo gem install rails安装最新版本(目前它将安装2.3.5)。 如果需要2.2.2,请使用-v--version选项进行指定: sudo gem install rails --version 2.2.2 Rails还安装了一个二进制文件(是的,我知道它不是二进制文件), rails ,它会生成一个项目。 因为您有多个版本的gem,所以您需要控制调用哪个二进制文件。 当您安装rails gem时,RubyGems会将文件放在bin/ dir中,这是指向实际rails二进制文件的“链接”。 当您在命令行上说rails时,这就是您“呼叫”的那个。 但是,所有rubygems“链接”二进制文件都接受自己的参数,这是您要使用的版本。 您将像这样使用2.2.2 rails二进制文件:

rails _2.2.2_ my_project

我认为默认值是使用最新版本,因此,如果要使用最新版本,请执行以下操作:

rails myproject

但是,我看到您使用2.2.2来访问scaffold方法。 我强烈建议您不要使用该方法,有理由将其删除。 scaffold方法隐藏代码,并使自定义变得困难。 而是使用脚手架生成器:

./script/generate scaffold --help

祝您未来的冒险之旅好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM