61

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

4

9 回答 9

54

在更新现有的 rails 3.0.8 项目时,这对我有用。你的旅费可能会改变...

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

gem 'rails', '3.1.0.rc4’

更新捆绑包:

bundle update

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

rake rails:update

在经过更改冲突后,我运行了所有测试并且它们通过了(耶!)。我重新启动了服务器,到目前为止一切似乎都很好。

但是,这还没有使用新的资产管道。我的意思是 javascript 和 css(或 sass)文件仍在以流水线前的方式处理。据我了解,这是一个完全可行的选择。但是,当然,我想要新的好处,所以我相信接下来的步骤是包含和其他 gem(例如,coffeescript、sass、uglifier 等),然后将旧文件迁移到 app/assets 目录。

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

http://blog.nodeta.com/2011/06/14/rails-3-1-asset-pipeline-in-the-real-world/

希望这会有所帮助。

于 2011-06-15T23:14:26.033 回答
28

我刚刚通过将我的 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

我不确定您是否已经阅读了发行说明http://weblog.rubyonrails.org/2011/4/21/jquery-new-default

于 2011-05-24T00:57:00.617 回答
24

升级到 Rails 3.1

看它 :)

于 2011-05-11T17:29:14.390 回答
13

升级 Rails

更新:谨慎使用您的系统 rake,因为 rake 已升级。

bundle exec rake

确保您将为给定的 rails 项目使用正确的 rake(来源


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

一个例子

在将旧的 rails 2.3.4 应用程序转换为 3.0 时,我在项目中一次更改一个文件时崩溃并烧毁了。不用说这是一个有缺陷的策略,但我确实在此过程中学到了一些东西。我最终跳过 3.0 并使用新的应用程序迁移到 3.1beta1,并在迁移正确后复制了我的应用程序和公共文件夹。这一举动有几个突出的问题,最重要的是我没有使用 rails edge 来创建新应用程序(感谢 RubyInside 的提示)。

首先将最新的导轨插入一个易于参考的位置:

cd ~/goodtimes

git clone https://github.com/rails/rails.git

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

然后参考那个 rails exec 来构建一个新的应用程序:

~/goodtimes/rails/bin/rails new bacon --edge

根据数据库的复杂性,您可能希望使用更改语法创建新的迁移,或者保留它们:

 class CreatePosts < ActiveRecord::Migration
    def change
      create_table :posts do |t|
        t.string :title
        t.text :body

        t.timestamps
      end
    end
  end

我在部署到 Heroku 时遇到了问题,但是 RubyRacer gem 帮助解决了这个问题。下面是一个简单的 Gem 文件示例:

source 'http://rubygems.org'

gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'

# Asset template engines
gem 'sass'
gem 'coffee-script'
gem 'uglifier'

gem 'jquery-rails'
gem 'pg'
gem 'therubyracer-heroku', '0.8.1.pre3', :platforms => :ruby

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'

group :test do
  # Pretty printed test output
  gem 'turn', :require => false
end

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

参考:

  1. 现在如何使用 Rails 3.1、CoffeeScript 和所有爵士乐
  2. Rails 3.1beta、Coffee-Script、jQuery、SCSS 和 Assets 的四骑士
  3. 从你的 iPhone 部署到 Heroku 的 Rails 3.1beta
  4. 可逆迁移
于 2011-05-17T17:48:01.340 回答
3

我建议更新您的 Gemfile 以使用边缘导轨。例如:

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'

你可以在这里阅读更多内容http://pogodan.com/blog/2011/04/24/easy-edge-rails

于 2011-05-11T18:59:29.573 回答
2

http://railscasts.com/episodes/282-upgrading-to-rails-3-1

这个 railscast 可能会有所帮助!

于 2011-10-29T11:16:28.493 回答
1

如果我正确理解了您的问题,这就是:

gem install rails --pre
于 2011-05-11T17:26:48.267 回答
1

这是一个很好的指南,详细介绍了安装 Rails 3.1:

http://railsapps.github.com/installing-rails-3-1.html

于 2011-08-16T02:32:13.330 回答
0

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

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

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

于 2011-09-13T04:49:57.650 回答