Обновление с Rails 3 до Rails 3.1

Как вы обновляете бета-версию Rails 3 до Rails 3.1?

Ответ 1

Это то, что сработало для меня при обновлении существующего проекта rails 3.0.8. Ваш пробег может меняться...

Обновите версию рельсов, указанную в моем Gemfile, чтобы использовать последний релиз:

gem 'rails', '3.1.0.rc4’

Обновить пакет:

bundle update

Затем обновите проект командой rake:

rake rails:update

После того, как вишня собрала хотя конфликт изменений, я провела все свои тесты, и они прошли (yay!). Я перезапустил сервер, и все кажется хорошим до сих пор.

Тем не менее, это еще не использование конвейера новых активов. Под этим я подразумеваю, что файлы javascript и css (или sass) по-прежнему обрабатываются в соответствии с предварительным конвейером. Насколько я понимаю, это вполне жизнеспособный вариант. Но, конечно, я хочу новую доброту, поэтому я считаю, что следующие шаги включают в себя и дополнительные драгоценные камни (например, coffeescript, sass, uglifier и т.д.), А затем для переноса старых файлов в каталог приложений/активов.

Я нашел некоторые подробности о том, что здесь:

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

Надеюсь, что это было полезно.

Ответ 2

Я только что обновил с 3.0 до 3.1, изменив свой Gemfile на:

gem 'rails', '3.1.0.rc1'
gem 'sqlite3'
gem 'sass'
gem 'coffee-script'
gem 'uglifier'

Я также прокомментировал следующую строку ниже в config/environment/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

Ответ 4

Обновление Rails

Обновить: будьте осторожны при использовании системного грабли, так как рейк был обновлен.

bundle exec rake

гарантирует, что вы будете использовать правильный рейк для данного проекта рельсов (источник)


Я предлагаю начать со свежего приложения, а затем копировать в вашу конкретную информацию о приложении, перемещая ваши ресурсы в новый формат активов/звездочек.

Пример

При преобразовании старых рельсов 2.3.4 app to 3.0 Я разбился и сгорел, пока изменение одного файла за раз в рамках проекта. разумеется это была некорректная стратегия, но я сделал немного учитесь на этом пути. Я закончил вверх, пропуская 3,0 и переместившись на 3.1beta1 со свежим приложением, и скопировал мое приложение и общедоступные папки после получения миграция вправо. Этот шаг пара нерешенных вопросов, наиболее важно, что я не использовал рельсы для создания нового приложения (спасибо за отзыв 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:

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.

Литература:

Ответ 5

Я рекомендую обновить 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.

Ответ 7

Если я правильно понял ваш вопрос, вот как:

gem install rails --pre

Ответ 9

Модернизация рельсов 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 и выше, если хотите - он все равно будет работать, хотя вы не будете использовать все новое в рельсах 3.1.