【问题标题】:How to upgrade a Rails 3.0 app to Rails 3.1?如何将 Rails 3.0 应用程序升级到 Rails 3.1?
【发布时间】:2013-03-19 00:12:18
【问题描述】:

我有一个 Rails 3.0 应用程序(技术上是 3.0.7),我想升级到 Rails 3.1 以利用新的资产管道和其他奇特的新功能。这样做的最佳方法是什么?我应该使用rails new 生成器,然后将旧应用程序中的所有内容复制到新应用程序吗?版本控制呢?我已经有了使用 Git 的旧应用程序。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1


    【解决方案1】:

    刚刚将我的一个应用程序从 3.0.9 升级到 3.1.0,这是我的方法,您的里程可能会有所不同:

    编辑 Gemfile,更改 Rails gem 版本

    gem 'rails', '3.1.0'
    

    还添加了 3.1.0 中引入的新宝石

    group :assets do
      gem 'sass-rails', "~> 3.1.0"
      gem 'coffee-rails', "~> 3.1.0"
      gem 'uglifier'
    end
    gem 'jquery-rails'
    

    运行bundle update rails

    然后运行rake rails:update 并解决冲突。

    将您的 css/javascript/images 等移动到 app/assets 文件夹,确保有一个 application.js 和一个 application.css 文件(您可能想看看这两个来自新创建的 3.1.0 项目)

    像这样在布局文件中包含 css/javascript 链接

    <%= stylesheet_link_tag "application" %>
    <%= javascript_include_tag "application" %>
    

    【讨论】:

    • 最好将 RVM 更新到最新版本:rvm get latest,或者如果 RVM 太旧,则再次运行安装脚本,然后更新 RubyGems:gem update --system,然后更新 bundler :gem install bundler
    • 我在运行bundle update rails 时遇到了一些冲突,所以我不得不改为运行bundle update
    • 就资产目录而言,我刚刚创建了一个虚拟 3.1 应用程序并将资产目录结构复制到我的旧应用程序中
    • 另请注意,对图像的引用(例如在样式表中)将不再是/images/photo.jpg,而是/assets/photo.jpg(不引用图像目录)。那个让我有点。
    • 如果您正在“挑选框架”,例如,如果您已将 application.rb 中的“require 'rails/all'”替换为您需要的框架列表,则必须添加“require 'sprockets /railtie'"
    【解决方案2】:

    熟悉 Rails 3.1,以下是资源: http://jasonrudolph.com/blog/2011/06/06/helpful-resources-for-upgrading-to-rails-3-1/

    最重要的是您当前的测试,在开始之前确保您对 3.0 应用有良好的测试覆盖率。

    【讨论】:

      【解决方案3】:

      在您的 Git 存储库中创建一个新分支。

      如果您使用的是 Devise、RSpec 或 Cucumber,请查看 Rails 3.1 Example Apps,因为它们将为您提供一个很好的参考实现。如果没有,只需使用rails new 创建一个简单的 Rails 3.1 应用程序。

      然后使用文件比较工具(例如 Mac OS X 上的 FileMerge 或 Changes)来确定 Rails 3.1 代码与 3.0 应用程序的不同之处。

      【讨论】:

        【解决方案4】:

        我今天刚刚使用 3.0.9 的应用程序完成了这项工作 看看这个博客,很简单。

        http://davidjrice.co.uk/2011/05/25/how-to-upgrade-a-rails-application-to-version-3-1-0.html

        只需更改 gem 文件、一些配置变量、移动一些资产并创建一些 css 和 js 清单文件,应该不会超过一个小时。

        【讨论】:

          【解决方案5】:

          将此 gem 复制到您的 gem 文件中,替换旧的一次 宝石'rails','3.1.0'

          group :assets do
            gem 'sass-rails', "~> 3.1.0"
            gem 'coffee-rails', "~> 3.1.0"
            gem 'uglifier'
          end
          

          你所要做的就是运行rake rails:update

          您也可以运行 rake -T 来查看您需要的一些很酷的 rake 任务

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-05-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-08-18
            • 1970-01-01
            相关资源
            最近更新 更多