Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Upgrade Rails 2.1

Come aggiornare le nostre applicazioni Rails e scoprire le novità della nuova versione del Framework
Come aggiornare le nostre applicazioni Rails e scoprire le novità della nuova versione del Framework
Link copiato negli appunti

Il 1 giugno 2008 è stato rilasciato Rails 2.1. Sei mesi di lavoro, 1400 contributor per oltre 1600 patch. Sono solo alcuni dei numeri che caratterizzano Rails 2.1, la nuova versione del popolare framework MVC scritto in Ruby.

Come anticipato, avrei voluto scrivere un articolo riassumento le novità della nuova release ma, poiché questo documento già esiste, vi consiglio la lettura del PDF. Il libro è disponibile in portoghese, tradotto in inglese ed in italiano dalla comunità di ruby-it.org.

Soddisfatta la nostra sete di sapere, in questo articolo vedremo come mettere in pratica le nuove caratteristiche di Ruby on Rails 2.1 ed eseguire l'upgrade dei nostri progetti a questa versione.

Prima di Cominciare

Questo articolo descrive la procedura di aggiornamento specifico alla versione Rails 2.1 ed eventuali bugfix release 2.1.x. Prima di procedere con l'aggiornamento specifico è necessario aver completato correttamente la procedura generica di aggiornamento a Rails 2.

In particolare, è essenziale che Rails 2.1 sia stato installato correttamente e che tutti i riferimenti al framework nei file del vostro progetto corrispondano a quelli della nuova release.

Creazione initializer new_rails_defaults.rb

Rails 2.1 introduce 4 nuove configurazioni in vista di Rails 3. Le impostazioni sono contenute nel file new_rails_defaults.rb, creato in automatico per ogni nuovo progetto Rails 2.1 nella cartella config/initializers.

Per evitare problemi in futuro, creiamo il nuovo file new_rails_default.rb nella cartella indicata ed incolliamo all'interno le nuove configurazioni.

# These settings change the behavior of Rails 2 apps and will be defaults
# for Rails 3. You can remove this initializer when Rails 3 is released.
# Include Active Record class name as root for JSON serialized output.
ActiveRecord::Base.include_root_in_json = true
# Store the full class name (including module namespace) in STI type column.
ActiveRecord::Base.store_full_sti_class = true
# Use ISO 8601 format for JSON serialized times and dates.
ActiveSupport.use_standard_json_time_format = true
# Don't escape HTML entities in JSON, leave that for the #json_escape helper.
# if you're including raw json in an HTML page.
ActiveSupport.escape_html_entities_in_json = false

Rimozione configurazione cache_template_extensions

Se a questo punto proviamo ad eseguire la nostra applicazione in modalità development, quasi sicuramente tra i log sarà comparso il seguente messaggio.

DEPRECATION WARNING: config.action_view.cache_template_extensions 
option has been deprecated and has no affect. Please remove it from your config files.  
See http://www.rubyonrails.org/deprecation for details. 
(called from send at /Library/Ruby/Gems/1.8/gems/rails-2.1.0/lib/initializer.rb:455)

In caso affermativo, rimuoviamo la configurazione indicata dal file config/environments/development.rb e da qualsiasi altro file che descriva un environment di esecuzione.

Definizione Time Zone

Tra le novità più interessanti di Rails 2.1 rientra il nuovo sistema di gestione dei fusi orari. In precedenza, l'unica impostazione disponibile era quella relativa alla timezone di active_record. Con la seguente proprietà era possibile indicare, ad esempio, di salvare i record nel database come UTC.

config.active_record.default_timezone = :utc

Con Rails 2.1 la musica cambia! Apriamo il file config/environment.rb ed indichiamo il fuso orario per l'intera applicazione con il comando:

config.time_zone = 'Rome'

Sostituiamo 'Rome' con il fuso orario più appropriato, se necessario, e rimuoviamo la precedente configurazione di active_record. La nuova, infatti, sovrascrive completamente il comportamento della precedente eseguendo sempre il salvataggio nel database in UTC e applicando il fuso orario selezionato in tempo reale.

GEM e requisiti

Un'altra novità strepitosa è senza dubbio il nuovo sistema di gestione delle dipendenze GEM per progetto. Con Rails 2.1 è possibile indicare quali GEM sono richieste dalla nostra applicazione ed impedire l'avvio nel caso i requisiti minimi non siano soddisfatti.

All'interno del file environment.rb, o del file di environment scelto, inseriamo una ad una le gem richieste dalla nostra applicazione, come mostrato nell'articolo. Una volta completato, possiamo procedere alla rimozione di tutti i vari comandi di inclusione gem 'nomegem' sparsi per il programma.

Esempio. Aggiornamento GEM Foo

# in config/initializers/foo.rb rimuovete
gem 'foo', '> 1.2'
require 'foo'

# in config/environment.rb inserite nel blocco di Rails::Initializer.run do |config|
config.gem "foo", :version => '> 1.2'

Conclusioni

Potremmo andare avanti all'infinito nell'indicare ulteriori miglioramenti, tuttavia quanto descritto rappresenta già un ottimo punto di partenza. Una volta eseguito l'aggiornamento a Rails 2.1 è utile investire qualche ora del nostro tempo per familiarizzare con le novità. Una volta entrati in confidenza, possiamo sfruttare ogni occasione possibile per migliorare il nostro progetto ed eseguire gli opportuni refactoring.

Ti consigliamo anche