61

Rails 3 から Rails 3.1 ベータ版にアップグレードするにはどうすればよいですか?

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.nodata.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 プロジェクトに適切なレーキを使用していることを確認します ( source )


新しいアプリから始めて、リソースを新しいアセット/スプロケット形式に移行しながら、特定のアプリ情報をコピーすることをお勧めします。

古い Rails 2.3.4 アプリを 3.0 に変換しているときに、プロジェクト内で一度に 1 つのファイルを変更しているときにクラッシュして焼き付きました。言うまでもなく、それは欠陥のある戦略でしたが、途中で少し学びました. 私は最終的に 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、およびすべての Jazz を今すぐプレイする方法
  2. Rails 3.1beta、Coffee-Script、jQuery、SCSS、Assets の 4 人の騎士
  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

このレールキャストが役立つかもしれません!

于 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 に答える