---主题:升级项目到 3.0.0.beta3
注意:rails需要至少ruby 1.8.7,如果ruby版本不够1.8.7,请升级为1.8.7或1.9.2。
1: 升级rubygems为1.3.7
sudo gem update --system
2:安装rails 3.0依赖的包
1》
sudo gem install tzinfo builder i18n memcache-client rack rake rack-test erubis mail text-format thor bundler
2》
sudo gem install rack-mount
3:安装rails 3.0
gem install rails --pre -v=3.0.0.beta3
4:升级项目
1》 安装官方的升级插件(如果没有安装git,先安装git)
1》》 进入项目下,script/plugin install git://github.com/rails/rails_upgrade.git
2》》 新建rails3的项目app(rails app)
3》》 进入ihaveu项目下
1)进入ihaveu项目下,rake rails:upgrade:backup
这个rake会备份一些要修改的文件,备份文件以rails2结尾.
2)复制app项目config/application.rb文件到项目的config下
执行rake rails:upgrade:configuration
将从module开始及其以后的内容都复制到application.rb中覆盖module 的内容,注意如果你在这里有config.gem 的配置,在新的config/application.rb文件中要删除掉,会报错的
3)复制app项目根目录下的Gemfile文件到ihaveu项目。
执行rake rails:upgrade:gems
生成的内容复制到Gemfile下
4)进入ihaveu项目下,执行rake rails:upgrade:routes
生成的内容复制到routes.rb中
5)复制app项目下的config.ru文件到ihaveu项目下
修改config.ru文件中的run **::Application的**(**是项目名称)改为现在的项目名称(Ihave,首字母大写)
6)复制app项目config下environment.rb文件到ihaveu项目下
修改environment.rb文件中的run **::Application.initialize!(**是项目名称)改为现在的项目名称(Ihave,首字母大写)
7) 删掉ihaveu项目的config/initializers下的new_rails_defaults.rb文件
8) 复制app项目config下的boot.rb文件到ihaveu项目下对应的位置
9) 复制app项目下的script目录中的rails文件复制到ihaveu项目下的script目录中
10) 修改ihaveu项目中config/environments目录下的三个文件(development.rb、test.rb、production.rb),这三个文件要这样修改
Ihaveu(项目名称)::Application.configure do
# 原来的代码
end
11) rails server 启动服务器
如果没有用插件(或者使用的插件已经支持Rails 3.0 beta了),估计就可以初步地启动服务器了,此时启动项目时,会提示问题,如果使用了gem包,很有可能会出现问题,此时需要依照各自的问题来解决。现在我查找ihaveu项目中的不用的或不支持rails 3的gem包。
12) 注释不兼容Rails 3.0 beta的gem包
进入ihaveu项目中,打开根目录Gemfile文件,注释掉以下gem:
# gem 'rails', '2.3.4'
# gem 'thoughtbot-paperclip', '~> 2.3.0', :require => 'paperclip'
# gem 'rspec-rails', :require => 'spec/rails'
# gem 'thinking-sphinx', :require => 'thinking_sphinx'
source 'http://gemcutter.org'
# gem 'ts-datetime-delta', '>= 1.0.0', :require => 'thinking_sphinx/deltas/datetime_delta'
以下是可以替换的包:
gem install rspec --prerelease
gem install rspec-rails --pre
gem install thinking-sphinx --pre
注意:其实nkallen-cache-money包也是不兼容Rails 3.0 beta,但是这个可以修改,修改后就可以用了,修改方法如下:
找到已安装好的nkallen-cache-money包
1》打开/lib/下的cache_money.rb,将require 'activesupport'、require 'activerecord'修改为require 'active_support'、require 'active_record'(因为rails3 中只有require 'active_support'、require 'active_record'没有require 'activesupport'、require 'activerecord')
2》打开/lib/cash下的mock.rb,将< HashWithIndifferentAccess删掉
13)修改内容
1》
把ihaveu项目中config下的environment.rb.rails2中
module Kernel
def is_sphinx_enabled?
false#RUBY_PLATFORM !~ /mingw|mswin|java/ && File.exist?(%x(which mmseg)[0..-2]) # && RAILS_ENV == "production"
end
end
复制到ihaveu项目中config/application.rb中的module 项目名称 上边。
2》
ihaveu项目/config/initializers/error_table.rb中注释以下行:
4、17、62、63、66、69、70、72、79、80、81、83、84、86、87、88、145、146、147、148、149、150、151、152、169、176
3》
ihaveu项目/config/initializers/new_rails_defaults.rb中注释第14行
4》
ihaveu项目/config/initializers/session_store.rb中注释第16、22行
5》
1》》ihaveu项目/config/routes.rb中修改以下内容:
match '/signup/:invitation_id/:invitation_code' => 'home/accounts#new', :as => :signup, :invitation_id => , :invitation_code =>
改为
match '/signup/:invitation_id/:invitation_code' => 'home/accounts#new', :as => :signup, :invitation_id => "", :invitation_code => ""
2》》
把所有的get_post :***,改为get :***和 post :***。
3》》
修改路由代码,为resources指定:controller选项
例如:
resources :friends do
......
end
改为
resources :friends, :controller => 'home/friends' do
......
end
14)升级项目完成,启动项目rails server
---主题:升级项目到2.3.8
1:安装rails 2.3.8(如果想删掉旧版本的gem,sudo gem cleanup)
sudo gem install rails -v=2.3.8
2:更改config/environment.rb代码中的RAILS_GEM_VERSION为2.3.8
3:启动项目运行。
4:没有不兼容的插件。
注意:rails需要至少ruby 1.8.7,如果ruby版本不够1.8.7,请升级为1.8.7或1.9.2。
1: 升级rubygems为1.3.7
sudo gem update --system
2:安装rails 3.0依赖的包
1》
sudo gem install tzinfo builder i18n memcache-client rack rake rack-test erubis mail text-format thor bundler
2》
sudo gem install rack-mount
3:安装rails 3.0
gem install rails --pre -v=3.0.0.beta3
4:升级项目
1》 安装官方的升级插件(如果没有安装git,先安装git)
1》》 进入项目下,script/plugin install git://github.com/rails/rails_upgrade.git
2》》 新建rails3的项目app(rails app)
3》》 进入ihaveu项目下
1)进入ihaveu项目下,rake rails:upgrade:backup
这个rake会备份一些要修改的文件,备份文件以rails2结尾.
2)复制app项目config/application.rb文件到项目的config下
执行rake rails:upgrade:configuration
将从module开始及其以后的内容都复制到application.rb中覆盖module 的内容,注意如果你在这里有config.gem 的配置,在新的config/application.rb文件中要删除掉,会报错的
3)复制app项目根目录下的Gemfile文件到ihaveu项目。
执行rake rails:upgrade:gems
生成的内容复制到Gemfile下
4)进入ihaveu项目下,执行rake rails:upgrade:routes
生成的内容复制到routes.rb中
5)复制app项目下的config.ru文件到ihaveu项目下
修改config.ru文件中的run **::Application的**(**是项目名称)改为现在的项目名称(Ihave,首字母大写)
6)复制app项目config下environment.rb文件到ihaveu项目下
修改environment.rb文件中的run **::Application.initialize!(**是项目名称)改为现在的项目名称(Ihave,首字母大写)
7) 删掉ihaveu项目的config/initializers下的new_rails_defaults.rb文件
8) 复制app项目config下的boot.rb文件到ihaveu项目下对应的位置
9) 复制app项目下的script目录中的rails文件复制到ihaveu项目下的script目录中
10) 修改ihaveu项目中config/environments目录下的三个文件(development.rb、test.rb、production.rb),这三个文件要这样修改
Ihaveu(项目名称)::Application.configure do
# 原来的代码
end
11) rails server 启动服务器
如果没有用插件(或者使用的插件已经支持Rails 3.0 beta了),估计就可以初步地启动服务器了,此时启动项目时,会提示问题,如果使用了gem包,很有可能会出现问题,此时需要依照各自的问题来解决。现在我查找ihaveu项目中的不用的或不支持rails 3的gem包。
12) 注释不兼容Rails 3.0 beta的gem包
进入ihaveu项目中,打开根目录Gemfile文件,注释掉以下gem:
# gem 'rails', '2.3.4'
# gem 'thoughtbot-paperclip', '~> 2.3.0', :require => 'paperclip'
# gem 'rspec-rails', :require => 'spec/rails'
# gem 'thinking-sphinx', :require => 'thinking_sphinx'
source 'http://gemcutter.org'
# gem 'ts-datetime-delta', '>= 1.0.0', :require => 'thinking_sphinx/deltas/datetime_delta'
以下是可以替换的包:
gem install rspec --prerelease
gem install rspec-rails --pre
gem install thinking-sphinx --pre
注意:其实nkallen-cache-money包也是不兼容Rails 3.0 beta,但是这个可以修改,修改后就可以用了,修改方法如下:
找到已安装好的nkallen-cache-money包
1》打开/lib/下的cache_money.rb,将require 'activesupport'、require 'activerecord'修改为require 'active_support'、require 'active_record'(因为rails3 中只有require 'active_support'、require 'active_record'没有require 'activesupport'、require 'activerecord')
2》打开/lib/cash下的mock.rb,将< HashWithIndifferentAccess删掉
13)修改内容
1》
把ihaveu项目中config下的environment.rb.rails2中
module Kernel
def is_sphinx_enabled?
false#RUBY_PLATFORM !~ /mingw|mswin|java/ && File.exist?(%x(which mmseg)[0..-2]) # && RAILS_ENV == "production"
end
end
复制到ihaveu项目中config/application.rb中的module 项目名称 上边。
2》
ihaveu项目/config/initializers/error_table.rb中注释以下行:
4、17、62、63、66、69、70、72、79、80、81、83、84、86、87、88、145、146、147、148、149、150、151、152、169、176
3》
ihaveu项目/config/initializers/new_rails_defaults.rb中注释第14行
4》
ihaveu项目/config/initializers/session_store.rb中注释第16、22行
5》
1》》ihaveu项目/config/routes.rb中修改以下内容:
match '/signup/:invitation_id/:invitation_code' => 'home/accounts#new', :as => :signup, :invitation_id => , :invitation_code =>
改为
match '/signup/:invitation_id/:invitation_code' => 'home/accounts#new', :as => :signup, :invitation_id => "", :invitation_code => ""
2》》
把所有的get_post :***,改为get :***和 post :***。
3》》
修改路由代码,为resources指定:controller选项
例如:
resources :friends do
......
end
改为
resources :friends, :controller => 'home/friends' do
......
end
14)升级项目完成,启动项目rails server
---主题:升级项目到2.3.8
1:安装rails 2.3.8(如果想删掉旧版本的gem,sudo gem cleanup)
sudo gem install rails -v=2.3.8
2:更改config/environment.rb代码中的RAILS_GEM_VERSION为2.3.8
3:启动项目运行。
4:没有不兼容的插件。
发表评论
-
rails console 记录命令历史
2020-03-20 10:53 3501: 打开文件: vim ~/.irbrc,添加如下内容: ... -
mysql dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
2019-12-16 16:43 435今天一连串的神操作导致连接mysql一直报错,dyld: Li ... -
ruby gsub和sub 的特殊使用
2019-04-04 19:53 1042gsub和sub使用 常用的使 ... -
rails离线环境搭建相关命令
2018-12-17 09:35 4501:下载yum包: 环境搭建需要安装很多包,可以使用 yumd ... -
rails离线环境搭建相关命令
2018-12-17 09:35 4771:下载yum包: 环境搭建需要安装很多包,可以使用 yumd ... -
rails5 belongs_to 默认不能为空,报错must exist
2017-04-29 16:37 4831: 在config/application.rb设置 con ... -
随笔知识
2014-08-07 21:11 1836show-source: 查看方法在文件中的位置,show-s ... -
rails 中 group 按照一定的规则返回数据
2012-11-03 19:20 970has_many :user_resumes, class_n ... -
项目 经验
2012-10-10 15:53 01: user = User.first; user. ... -
数组使用will_paginate
2012-03-30 11:58 1436有的时候,在开发的过程中需要对模型数组进行分页,此时我们可以如 ... -
我的rails 编程规范
2012-01-16 15:19 8961: 属性中时间要已at结尾,例如created_at, ... -
html_safe
2012-01-12 13:56 1432html_safe: 可以保证(> < &am ... -
同时分页查找没有关联关系的多个表
2011-12-30 14:41 1291supplyinfos和seekinginfos两个表 需求: ... -
send_file ie下文件名乱码问题解决
2011-10-28 17:50 2475使用rails的send_file 实现下载功能时,type指 ... -
counter_cache的使用
2011-10-08 11:55 2732有点惭愧,做rails也2年了,竟然不会用co ... -
has_many 关联关系表单 提交
2011-04-18 17:16 1155class Author has_many :books ... -
belongs_to 多级关联关系
2011-04-12 14:18 1129有一种情况,是这样的c属于b,b属于a,但是我们有时候想建立c ... -
rails 根据异常显示特定的错误页面
2011-03-27 20:50 1177rescue_from 异常, :with => :a ... -
rails 笔记
2011-03-27 20:49 1743启动项目: ruby script/se ... -
rails 发送电子邮件(ActionMailer)
2011-03-27 20:49 36361: 复制以下配置邮件 ...
相关推荐
### 重构你的Rails程式码 在进行Rails版本升级时,重构代码是一个绝佳的机会。本文将深入探讨为何这是个好时机来进行重构,并提供一系列实用的方法帮助您优化代码。...希望这篇文章能为您的Rails项目带来积极的影响。
良好的文件组织结构有助于提高项目的可维护性,使得未来的升级和扩展变得更加容易。 #### 五、验收过程与结果 文档的后半部分涉及到验收过程中的专家测试报告与验收意见,虽然具体的测试结果和意见没有给出,但...
- **步骤**:通过命令行使用`rails new project_name`来初始化一个新的Rails项目。 - **结构**:新项目将包含默认的目录结构,如`app`、`config`、`db`等,分别用于存放应用程序代码、配置文件、数据库迁移脚本等。 ...
10. **Rails社区与工具**:熟悉Rails社区的资源,如Stack Overflow、GitHub上的开源项目,以及RailsGuides和Rails API文档,这些都能帮助开发者解决问题和提升技能。 "Advanced Rails"这本书是进一步提升Rails技能...
3. 克隆或下载Rails 4.2.0项目的源代码,或者创建一个新的Rails项目,使用`rails new my_app -d sqlite3`命令,其中`my_app`是你的应用名,`-d sqlite3`指定使用SQLite数据库。 4. 进入项目目录,运行`bundle ...
Ruby on Rails 2.3.5 API HTML版是针对该版本框架的重要开发参考资料,...不过要注意,Rails框架已经发展到更高的版本,新版本可能引入了更多的改进和最佳实践,因此在实际项目中,考虑升级到最新稳定版本也是必要的。
- 如果你遇到任何问题,查阅 Rails 2.3.2 的官方文档或社区资源,例如 Stack Overflow 上的相关问题,可能会有所帮助。 6. **安全与升级** - 考虑到 Rails 2.3.2 已经非常过时,可能存在大量的安全漏洞。在生产...
在Rails_Full_Version压缩包中,包含了完整的源代码和必要的资源文件,开发者可以通过解压并导入到Rails项目中,按照官方文档进行配置和定制。同时,这个版本可能还包含了升级记录、更改日志和可能的bug修复,以保证...
将该文件放在系统的PATH环境变量包含的任何目录下,或者将其放在Rails项目的根目录下,以便运行时能正确找到。 还有一种可能是MySQL服务未启动或配置不当。在命令行中,使用`net start mysql`(或相应服务名)检查...
这些套件通常包含了运行Rails项目所需的所有软件包,如Ruby、Rails、数据库驱动等,使得安装过程更加简便。 - **数据库设置**:详细阐述了如何安装和配置MySQL数据库,以及如何在Ruby环境中安装MySQL的绑定库,确保...
- **开源文化**:鼓励开发者参与到Rails社区中去,通过贡献代码、文档等方式来提升个人技能并为整个社区做出贡献。 - **版本控制与协作工具**:介绍了如何使用Git等版本控制系统来管理代码库,以及如何与其他开发者...
安装完这些工具后,你就可以创建新的Rails项目了,只需在命令行输入`rails new myapp`,Rails将为你生成一个新的应用结构。 最后,别忘了设置Ruby on Rails的开发环境。这包括修改`config/database.yml`文件以连接...
3. **依赖管理**:在Rails项目中,各个Gem之间可能存在依赖关系。安装特定版本的Rails时,可能需要同时安装其依赖的其他Gem。这些依赖在`Gemfile`中声明,并通过`bundle install`命令处理。标题中提到的"依赖"指的是...
Rails 2.2不仅修复了诸多bug,还加入了一系列新功能,这些改进对于初次接触Rails或正在考虑将项目迁移到Rails 2.2的人来说非常重要。 #### 新增功能详解 ##### 国际化(i18n)支持 Rails 2.2引入了一个强大的国际化...
- **版本更新**:Rails 4发布于2013年6月,是Rails 3的重大升级。 - **主要特点**: - **安全性增强**:内置安全功能,如防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等。 - **性能优化**:提高了数据库查询...
6. **文档生成**: Rails API可以集成如Rswag等工具,自动生成API文档,方便开发者使用。 7. **错误处理**: 提供了统一的错误处理机制,返回结构化的错误信息,便于客户端处理。 **API 设计最佳实践** 1. **RESTful...
9. **版本管理**:“e980d40”这样的版本号可能意味着在项目中锁定特定版本,以确保一致性并防止未来升级时引入意外的更改。 10. **文档和社区**:Administrate有详尽的官方文档和活跃的社区支持,帮助开发者解决...
4. 安装完成后,你可以通过`rails new myapp`命令创建一个新的Rails项目。 请注意,这里提供的Rails版本(2.3.3)非常旧,现在的Rails版本已经发展到6.x系列。为了获得更好的安全性和功能支持,建议使用最新或至少...
- **Rails** 插件通常作为一个独立的项目来管理,可以方便地添加到任何 **Rails** 应用中。这种方式有助于分离关注点,并促进了社区之间的资源共享。 #### SwitchTower 及 Gauge - **SwitchTower** 是一家提供托管...