`
notrace123
  • 浏览: 8554 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
最近访客 更多访客>>
社区版块
存档分类
最新评论

项目升级rails 2 -〉 rails 3

 
阅读更多

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》》  进入old项目下

        1)进入old目下,

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文件到old项目。
              执行

rake rails:upgrade:gems 

                 生成的内容复制到Gemfile下

        4)进入old项目下,执行

rake rails:upgrade:routes 

                生成的内容复制到routes.rb中
        5)复制app项目下的config.ru文件到old项目下
            修改config.ru文件中的run **::Application的**(**是项目名称)改为现在的项目名称(Old,首字母大写)

        6)复制app项目config下environment.rb文件到old项目下
            修改environment.rb文件中的run **::Application.initialize!(**是项目名称)改为现在的项目名称(Old,首字母大写)

        7)  删掉old项目的config/initializers下的new_rails_defaults.rb文件

        8)  复制app项目config下的boot.rb文件到old项目下对应的位置

        9)  复制app项目下的script目录中的rails文件复制到old项目下的script目录中

        10)  修改old项目中config/environments目录下的三个文件(development.rb、test.rb、production.rb),这三个文件要这样修改

Old(项目名称)::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

分享到:
评论

相关推荐

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    - **升级**:当需要更新到Rails的最新版本时,可以使用`bundle update rails`命令来更新依赖。 - **回滚**:如果更新后出现问题,可以通过`git`命令或者手动修改`Gemfile`来回滚到之前的版本。 #### 六、添加第二个...

    Rails进行敏捷Web开发(所有版本的源码rails3.0-4.0)

    1. Rails 3.0: Rails 3是重大升级,引入了ActionController::Metal,这是一个轻量级的控制器,用于提高性能。同时,它引入了多路由引擎支持,如Rack中间件,使得与其他Web服务器的集成更加容易。此外,ActiveRecord...

    rails-4.2.0-gems

    3. 克隆或下载Rails 4.2.0项目的源代码,或者创建一个新的Rails项目,使用`rails new my_app -d sqlite3`命令,其中`my_app`是你的应用名,`-d sqlite3`指定使用SQLite数据库。 4. 进入项目目录,运行`bundle ...

    rails-api-4.0.0

    《Rails API 4.0.0:Ruby on Rails框架的API设计与开发指南》 Rails API 4.0.0是Ruby on Rails框架的一个版本,专门针对构建应用程序接口(APIs)进行了优化。Ruby on Rails是由David Heinemeier Hansson创建的开源...

    rails-api-4.2.4

    综上所述,"rails-api-4.2.4"是一个专为API开发设计的Rails版本,具有高效的性能和良好的社区支持。开发者可以利用这个框架快速构建稳定可靠的API服务,并遵循最佳实践来提升API的质量和可维护性。同时,利用丰富的...

    rails-2.2.2.zip

    在这个特定的"rails-2.2.2.zip"安装包中,我们可以期待找到构建Rails应用所需的基础组件和库。以下是一些关于Rails 2.2.2的关键知识点: 1. **ActiveRecord**:这是Rails中的ORM(对象关系映射)层,允许开发者用...

    Ruby on Rails 初体验--北大青鸟教师专题讲座PPT

    Ruby语言的版本发展从1.8.6开始,而Rails框架从2005年的1.0版本逐步升级,至2007年底推出了2.0版本。为了开发RoR应用,开发者可以选择各种开发环境,如InstantRails智能安装包,或者单独安装Ruby、Rails和MySQL,还...

    rails-2.3.3.zip

    2. **ActiveRecord**:这是Rails的ORM(对象关系映射)组件,负责处理数据库交互。在2.3.3版中,ActiveRecord支持复杂的查询,如关联(associations)和回调(callbacks),以及ActiveRecord验证(validations)确保...

    重构你的Rails程式码

    1. **社区准则:** 遵循社区驱动的编码风格指南,如 `ruby-style-guide` 和 `rails-style-guide`,可以帮助团队保持一致的代码风格,提高代码可读性和维护性。 - **Ruby风格指南:** 提供了关于Ruby编程的最佳实践...

    The Rails 3 Way, 2nd Edition

    2. **模块化**:Rails 3将核心框架进一步模块化,使得开发者可以根据项目需求选择性地加载特定组件。 3. **RESTful设计**:继续强调使用RESTful架构风格进行Web应用开发。 4. **安全性增强**:引入了一系列安全特性...

    rails2.3.2gem本地安装包及使用说明

    如果你无法通过网络升级或安装 Rails,可以采用本地安装包的方式。以下是对 Rails 2.3.2 Gem 本地安装包及其使用说明的详细解读。 1. **Rails 2.3.2 版本特性** - Rails 2.3.2 在 2009 年发布,引入了许多增强功能...

    windows下安装或升级rails

    ### Windows 下安装或升级 Rails 的常见问题与解决方法 在 Windows 平台上进行 Ruby on Rails 开发时,可能会遇到各种各样的安装问题。本文将详细解释一个常见的问题:“在 Windows 下安装或升级 Rails 时,gem ...

    ruby on rails 开发环境包(ruby1.8.7,rails2.2.3)

    3. **创建新项目**:使用Rails命令行工具创建一个新的Rails项目。在终端中输入`rails new project_name -v=2.2.3`,其中project_name替换为你的项目名称。 4. **数据库配置**:Rails默认使用SQLite数据库,但你可以...

    Ruby On Rails教程

    - **持续更新与部署:** 保持Rails版本的最新是必要的,可以通过RubyGems进行升级。对于部署到互联网服务提供商(ISP)的情况,需要考虑服务器环境的兼容性和安全性问题。 #### 四、快速上手 - **创建新应用:** 使用...

    Ruby on Rails心得

    - **升级 Rails**:一旦安装完成,可以通过 `gem update rails` 命令来将 Rails 更新到最新版本。 - **验证安装**:同样地,可以通过 `rails -v` 命令来验证 Rails 是否安装成功。 #### 四、Rails 快速入门 **1. ...

    agile web development with rails 3 edition

    - Rails核心团队持续对Rails 2进行维护和升级。新的发布可能会引入与之前版本不兼容的变化。 - 为了便于开发者实验这些变化,团队提供了Edge Rails,这是一个包含了最新开发代码的分支。 - 如果想要运行实验性的...

    rails 3 upgrade handbook(simple樣例)

    - **案例一**:一个小型电子商务网站从Rails 2升级到Rails 3的过程,包括遇到的主要挑战及解决方案。 - **案例二**:一款复杂的企业级应用升级经验分享,涉及技术栈迁移、性能瓶颈处理等方面。 - **案例三**:关于...

    Advanced Rails

    10. **Rails社区与工具**:熟悉Rails社区的资源,如Stack Overflow、GitHub上的开源项目,以及RailsGuides和Rails API文档,这些都能帮助开发者解决问题和提升技能。 "Advanced Rails"这本书是进一步提升Rails技能...

    rails版本区别

    综上所述,从Rails 2到Rails 3的过渡不仅仅是版本号的简单递增,而是对整个框架的一次全面升级。Rails 3在脚本命令的调用、配置文件的结构以及路由定义的语法上都做了大量的优化,旨在提供更高效、更直观的开发体验...

Global site tag (gtag.js) - Google Analytics