2011-09-02 17 views
9

Ho un'app Rails 3.0 (tecnicamente 3.0.7) che vorrei aggiornare a Rails 3.1 per utilizzare la nuova pipeline di asset e altre fantastiche nuove funzionalità. Qual è l'approccio migliore per farlo? Dovrei usare il generatore rails new, quindi copiare tutto dalla mia vecchia app a quella nuova? Che ne pensi del controllo della versione? Ho già la mia vecchia app con Git.Come aggiornare un'applicazione Rails 3.0 a Rails 3.1?

risposta

10

appena aggiornato una delle mie applicazioni da 3.0.9 a 3.1.0, ecco il mio approccio, il tuo chilometraggio può variare:

Modifica Gemfile, cambiare Rails versione gioiello

gem 'rails', '3.1.0' 

aggiunge anche nuove gemme introdotto in 3.1.0

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

corsa bundle update rails

Poi eseguire rake rails:update e risolvere i conflitti.

spostare il vostro css/javascript/immagini ecc per cartella app/assets, assicurarsi che ci sia un application.js e un file application.css (si potrebbe desiderare di dare un'occhiata a quei due da appena creati 3.1.0 progetti)

Includere css/link JavaScript nel file di layout come questo

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

probabilmente sarebbe una buona idea per aggiornare RVM a l'ultima versione: 'rvm get latest' o eseguendo di nuovo lo script di installazione se RVM è troppo vecchio, quindi aggiorna RubyGems:' gem update --system', quindi aggiorna bundler: 'gem install bundler' – Andrew

+1

Ho avuto alcuni conflitti quando ho eseguito 'bundle update rails' quindi ho dovuto eseguire' bundle update' invece – Andrew

+1

Per quanto riguarda la directory assets Ho appena creato un'app fittizia 3.1 e ho copiato la struttura della directory delle risorse nella mia vecchia app – Andrew

1

Crea un nuovo ramo nel tuo repository Git.

Dai un'occhiata allo Rails 3.1 Example Apps se stai utilizzando Devise, RSpec o Cucumber perché ti daranno una buona implementazione di riferimento di lavoro. In caso contrario, basta usare rails new per creare una semplice app Rails 3.1.

Quindi utilizzare uno strumento di confronto file (come FileMerge o Modifiche su Mac OS X) per identificare dove il codice di Rails 3.1 è diverso dall'app 3.0.

0

copia questo gemme al file gioiello che sostituisce il vecchio una volta gioiello 'rotaie', '3.1.0'

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

Tutto quello che dovete fare è eseguire rake rails:update

è anche possibile eseguire rake -T di vedere qualche compito rake fresco che si avrebbe bisogno