Con l’annuncio della Release Candidate di Rails 2.0, si inizia la fase finale di test in attesa del rilascio ufficiale: è il momento migliore per controllare se le nostre applicazioni in sviluppo siano compatibili con la nuova versione. A tal scopo Geoffrey Grosenbach ha preparato un utilissimo rake task che, dopo averlo copiato nella directory lib/task, ricerca all’interno del nostro codice le incompatibilità e il suggerimento su come correggerle.
Vediamo più da vicino le differenze introdotte da Rails 2.0. @params, @session, @flash, @env: queste variabili sono state sostituite da metodi, in modo da permettere una customizzazione del loro comportamento più semplice; per passare al nuovo modo è sufficiente rimuovere il @, e tutto funzionerà come in precedenza.
find_all, find_first, render_partial: find, find_all, find_first hanno una funzione simile, cambiando solamente il numero di record restituiti. Per pulizia di nomenclatura ed uniformità , essi sono stati sostituiti da find(:all), find(:first), così come render(:partial) rimpiazza render_partial
Forms: diversamente dagli altri helper HTML, il tag form richiedeva sia un helper di start che di end. Per facilitare la creazione dinamica di form e per congruenza con le altre modalità di lavoro di Rails, viene introdotto un blocco chiamato form_tag. Da notare che, siccome i blocchi non ritornano valori, i tag ERB non necessitano del carattere “=”. Ad esempio:
<%= start_form_tag %>
<%= end_form_tag %>
diventa
<% form_tag do %>
<% end %>
Plug-in: un certo numero di funzionalità non particolarmente usate, sono state estratte dal core e rese disponibili come plug-in, in modo da permettere una maggiore velocità di miglioramento. Probabilmente l’estrazione più importante riguarda le interfacce dei database: di default Rails gestisce MySQL, SQLite e PostgreSQL. Tutti gli altri database sono gestiti tramite RubyGems, ad esempio Oracle si gestisce tramite gem activerecord-oracle-adapter.
Altre estrazioni riguardano i plug-in acts_as, come acts_as_tree e acts_as_list oppure la paginazione che ora si trova in classic_pagination; da notare che gli stessi sviluppatori suggeriscono l’utilizzo del più performante will_paginate.
di Giordano Scalzo - Programmazione.it