我正在学习Ruby on Rails与AWDR书,并且必须具体说明我在本地计算机上运行的Rails和Ruby版本。我刚刚发现我需要从ruby 1.8.7回滚到ruby 1.8.6 here。我还需要回滚Rails以支持脚手架方法,以便我可以轻松启动教程。管理许多不同版本的Ruby on Rails应用程序
我的问题是:当我开始签约,在现实世界中开发和部署项目时,我将如何管理所有这些不同的版本?
在我看来,铁路对传统代码的低容忍抵消了其易用性理念!但我相信我会越来越欣赏RoR。
我正在学习Ruby on Rails与AWDR书,并且必须具体说明我在本地计算机上运行的Rails和Ruby版本。我刚刚发现我需要从ruby 1.8.7回滚到ruby 1.8.6 here。我还需要回滚Rails以支持脚手架方法,以便我可以轻松启动教程。管理许多不同版本的Ruby on Rails应用程序
我的问题是:当我开始签约,在现实世界中开发和部署项目时,我将如何管理所有这些不同的版本?
在我看来,铁路对传统代码的低容忍抵消了其易用性理念!但我相信我会越来越欣赏RoR。
RubyGems是Ruby的包管理器。您可以根据需要安装尽可能多的宝石(软件包)版本。您可以通过运行sudo gem install rails
来安装最新版本(目前它将安装2.3.5)。如果您需要2.2.2,请使用-v
或--version
选项指定:sudo gem install rails --version 2.2.2
。 Rails还安装了一个二进制文件(是的,我知道它不是一个真正的二进制文件),它会生成一个项目。因为你有几个版本的宝石,你需要控制被调用的二进制文件。当您安装rails gem时,RubyGems会将一个文件放在它的bin/
dir中,这是与实际的rails
二进制文件的“链接”。当你在命令行上说rails
时,这是你“呼叫”的那个人。但是,所有rubygems“链接”二进制文件都接受它自己的参数,这是您要使用的版本。你会使用2.2.2导轨二进制这样的:
rails _2.2.2_ my_project
我觉得默认的是使用最新的版本,所以如果你想使用最新的版本,这样做:
rails myproject
但是,我看到您使用2.2.2来访问scaffold
方法。我强烈建议你不要使用该方法,但有理由将其删除。 scaffold
方法隐藏代码,并使定制变得困难。相反,使用脚手架发电机:
./script/generate scaffold --help
祝你未来的铁轨冒险!
最新版本的Agile Web是为2.2.2编写的,我相信。对于这个基本的应用程序,他们引导你通过我非常确定它应该与2.3.x工作
你如何跟上问题的答案是,你需要更新你的应用程序,并阅读API和Changleogs找到了解已更改的内容并修复升级失败的内容。一个很好的方式来帮助这个有一个好的测试套件,测试覆盖面很好。
至于Rails中,你可以做的是冻结您的版本,例如:
gem install rails
V = 2.2.2rake rails:freeze:edge RELEASE=2.2.2
现在你会发现包装项目的供应商文件夹内Rails的,所以你不必在部署机器上安装Rails:与项目本身
对于Ruby,我喜欢Ruby Version Manager(RVM),这是管理Ruby版本的最简单方法。
是的,我看到脚手架已折旧。它在AWDR书中。一旦我阅读本书,我将从我的技能组中删除它:) 谢谢! – Rimian 2010-01-24 04:10:02