Ruby on rails 从Rails 3升级到Rails 3.1

Ruby on rails 从Rails 3升级到Rails 3.1,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,如何从Rails 3升级到Rails 3.1 beta版?如果我正确理解了您的问题,以下是如何升级的: gem install rails --pre 注意:)我建议更新您的GEM文件以使用edge rails。例如: gem 'rails', :git => 'git://github.com/rails/rails.git' gem 'arel', :git => 'git://github.com/rails/arel.git' gem 'rack',

如何从Rails 3升级到Rails 3.1 beta版?

如果我正确理解了您的问题,以下是如何升级的:

gem install rails --pre


注意:)

我建议更新您的GEM文件以使用edge rails。例如:

gem 'rails',     :git => 'git://github.com/rails/rails.git'
gem 'arel',      :git => 'git://github.com/rails/arel.git'
gem 'rack',      :git => 'git://github.com/rack/rack.git'
gem 'sprockets', :git => 'git://github.com/sstephenson/sprockets.git'

gem 'sqlite3'

# Asset template engines
gem 'sass', '~> 3.1.0.alpha'
gem 'coffee-script'
gem 'uglifier'
您可以在此处阅读更多信息。

升级Rails 更新:小心使用您的系统rake,因为rake已经升级

bundle exec rake
确保为给定的rails项目()使用正确的rake


我建议从一个新的应用程序开始,然后复制你的特定应用程序信息,同时将你的资源转换为新的资产/链轮格式

一个例子

转换旧版rails 2.3.4时 应用程序到3.0时我崩溃并烧毁 一次更改一个文件 在项目内部。不用说 这是一个有缺陷的策略,但我做到了 一路上学一点。我结束了 跳过3.0并移动到3.1beta1 使用新的应用程序,并复制我的应用程序 获取后,在中打开和打开公用文件夹 迁移是正确的。这一举措产生了重大影响 两个悬而未决的问题,最重要的 重要的是我没有使用 用于创建新应用程序的rails边缘 (谢谢你的提示)

首先,将最新的rails插入 易于参考的位置:

cd~/goodtimes

git克隆
https://github.com/rails/rails.git

我的路径包括一个~/Desktop/Dropbox/ 所以我的代码随处可见

然后参考rails exec了解更多信息 构建新应用程序:

~/goodtimes/rails/bin/rails新培根--edge

根据数据库的复杂性,您可以使用更改语法创建新迁移,也可以将其保留为:

我怀疑会有一些社区实用程序来帮助您自动化从较旧版本的Rails到--edge的迁移

参考资料:


  • 我刚刚将Gemfile更改为以下内容,从3.0升级到3.1:

    gem 'rails', '3.1.0.rc1'
    gem 'sqlite3'
    gem 'sass'
    gem 'coffee-script'
    gem 'uglifier'
    
    我还在config/environments/development.rb中注释掉了下面的一行

    # config.action_view.debug_rjs = true
    
    最后,确保在config/application.rb中启用资产管道

    config.assets.enabled = true
    

    我不确定您是否已经阅读了发行说明

    这是更新现有rails 3.0.8项目时对我有效的方法。您的里程可能会有所不同

    更新my Gemfile中指定的rails版本以使用最新的候选版本:

    gem 'rails', '3.1.0.rc4’
    
    更新捆绑包:

    bundle update
    
    然后使用rake命令更新项目:

    rake rails:update
    
    在经历了变更冲突之后,我运行了所有的测试,它们都通过了(耶!)。我重新启动了服务器,到目前为止一切都很好

    然而,这还没有使用新的资产管道。我的意思是javascript和css(或sass)文件仍在以预管道方式处理。据我理解,这是一个完全可行的选择。当然,我想要新的goods,因此我相信接下来的步骤是包括和附加gem(例如coffeescript、sass、uglifier等),然后将旧文件迁移到app/assets目录

    我在这里找到了一些细节:


    希望这会有所帮助。

    这是一本非常好的指南,详细介绍了Rails 3.1的安装:


    使用本指南升级rails 3.0.7和3.0.9应用程序对我来说很有效

    如果您愿意,您可以跳过第3步或更高的步骤,尽管您不会利用rails 3.1中的所有新功能,但它仍然可以工作。


    这个铁路司机可能会有帮助

    我在下面给出了@user730569的一些例子。我正在将一个rails 2.3.4应用程序迁移到3.1 betajust将我的应用程序从3更新到3.1-有文档记录此问题也适用于rails 3.0到rails 3.1,谢谢您的提问。在我搜索到这里之前,我不知道rake rails:update。这会覆盖旧的rails项目吗?我认为你不能更新旧的项目,你应该生成新的oneRailscasts是获得关于rails信息的最好的网站之一,多亏了Ryan Bates!是 啊我看到了这一点,但我的主要问题是如何将一个运行rails 3的旧rails项目升级到rails 3.1在这种情况下,您的问题的更多细节可能会有所帮助。这是唯一一个真正回答的问题。railscasts一集很棒,但它没有说明如何迁移;它安装
    sass-rails
    coffee-rails
    ,这两个版本都是
    3.1.0.rc1
    ,并将这些gems(以及
    uglifier
    )放入
    组:资产do/end
    块中。它有助于在另一个目录中生成新的edge Rails站点,以查看添加的内容。您的链接缺少0。应该是:如果您只想更新包中特定于rails的gems,那么您可以执行
    包更新rails
    !但是,在启用资产的情况下运行时,我会遇到以下错误:
    没有与[get]/assets/application.css匹配的路由
    
    bundle update
    
    rake rails:update