首先进入到工程下面,然后输入下面的命令
rake rails:freeze:gems
如果系统有多个版本的时候,需要制定版本号:
rake rails:freeze:edge TAG=rel_1-2-3
TAG=rel_1-2-3,指定版本号;
不过不知道怎么的,下载到一半段了,最后还是用了第一种方式,不过要把2.0.2删掉。
这是Rails版本固化的命令,无论你使用的是什么版本的Rails,该命令都会将当前系统运行需要的Rails环境集成在你的工程目录/vender/rails下面,会自动生成一个Rails的文件夹,里面会有当前系统运行需要的各种环境。
在布置工程的时候,系统会先从/vender/rails下面去找相应的环境,如果找到符合当前系统需要的环境(相应版本的 actionmailer,actionpack,activerecord,activesupport,railties),系统就会采用这个环境运 行程序,如果找不到再到系统的环境变量中找ruby的文件夹中去找raisl的环境。
一般版本不兼容的问题采用这个方法都是可以实现的,需要说明,该命令可以在windows下面使用。
还有一种特殊的情况需要说明,就是我的系统是Rails2.0.2的环境,我用的是ApataStudio的IDE(RadRails)进行开发 的,当时公司里要求用的是Rails1.1.6,在项目开始时该IDE提示是简历1.1.6,2.0.2或者是最新的Rails项目,我选择的是 1.1.6。项目结束时要求将项目传到服务器上,谁知道服务器上的是Rails2.0.2的,我用上面的命令却没有用,可能是我的系统中的是2.0.2的 原因。
最后的解决方法的是将一个同学固化好的1.1.6的项目下面的/vender/下面的rails文件夹考到
我的系统下面覆盖rails文件夹即可。
gem uninstall Rails
gem uninstall Rake
gem uninstall Actionwebservice
gem uninstall Actionmailer
gem uninstall Actionpack
gem uninstall Activesu
命令移除冷冻的版本:
rake rails:unfreeze 冻结
-----------------------------------------------------------------------------
把Rails应用转到production环境,按照environment.rb中的默认设置:
ENV[’RAILS_ENV’] ||= ‘production’
把这一行的注释去掉。再执行:
rake db:migrate
但是production的数据库就是生成不了,它还是生成默认的development数据.mongrel_rails start还是启动的development环境.似乎这样设置不起作用.
上网找了一下,把设置改成这样:
RAILS_ENV=’production’
再rake,居然成了.
奇怪了.
update:问题已经解决
1、mongrel要启动production环境,要明确的加参数。如下:
mongrel_rails start -e production
2、rake之前,在windows上要设置RAILS_ENV这个环境变量,运行下面的命令行指令:
set RAILS_ENV=production
再rake,就没有问题了。解铃还需系铃人。见:
http://wiki.rubyonrails.com/rails/pages/UnderstandingMigrations
这两个地方都似乎与enviroment.rb无关。
ruby script/plugin install url
有种情况是:报的是已经安装了该插件,但是只有一个目录,必须将该目录去掉,才可以重新安装。
1、更新gem
命令:gem update --system
2、更新rails
命令:gem update rails --include-dependencies
3、rubygems会自动保存升级之前的旧版本文件,用下列命令可以删除这些备份文件
命令:gem cleanup
4、如果应用中用到例如acts_as_xxx等老版本种的方法,可通过plugin的方式安装
命令:script/plugin install acts_as_xxx
注:可以通过gem list --local来查看已经安装了哪些包