Rails 3: ActionPack e ActiveModel

16 febbraio 2010

Candies

Ci sono ancora tantissime cose di cui non ho fatto parola che sono cambiate in questa nuova release; tra queste le due principali si chiamano SafeBuffer e ActiveModel. Supponiamo di voler includere in una vista il seguente frammento di codice:

<%= "Saluto <b>tutti</b> i lettori di html.it" %>

Eseguendolo inaspettatamente otterremmo questo risultato:

Saluto <b>tutti</b> i lettori di html.it

Questo perchè dalla versione 3.0 Rails effettua in automatico l’escape di tutte le stringhe che non siano state prima marcate come html_safe, la corretta sintassi per giungere al risultato che ci aspettiamo diventa quindi:

<%= "Saluto <b>tutti</b> i lettori di html.it".html_safe %>

Chiaramente non ci troveremo spesso nella condizione di forzare una stringa ad html_safe, questo perché tutti gli helper del framework incorporano già questa caratteristica.

Passiamo ora alla seconda funzionalità: se ricordate l’introduzione dovreste già aver associato ActiveModel a quell’oggetto che, se incorporato, garantisce il diritto di colloquio con ActionPack; un altro grande vantaggio di questa scelta architetturale è quello di poter includere all’interno di semplici class Ruby metodi una volta patrimonio delle sole classi figlie di ActiveRecord::Base.

Nel listato seguente ad esempio una classe Ruby acquista la possibilità di validare le proprie variabili di istanza semplicemente includendo il modulo ActiveModel::Validations:

# file dog.rb
class Dog  # notate l'assenza di ActiveRecord::Base
  include ActiveModel::Validations # includo solo il componente delle validazioni
  
  validates_presence_of :age
  attr_accessor :age
  def initialize(age)
    @age = age
  end
end

Conclusioni

Spero di essere riuscito in questo articolo a dare una panoramica dell’immensa quantità di nuove features e paradigmi implementati nella versione 3.0 di Ruby on Rails. Personalmente ritengo che questa release abbia tutte le carte in regola per ridefinire un nuovo standard qualitativo in termini di framework per applicazioni Web a patto che dimostri di aver mantenuto, nonostante il pesante refactoring, tutta la stabilità delle precedenti versioni.

Se vuoi aggiornamenti su Rails 3: ActionPack e ActiveModel inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Rails 3: ActionPack e ActiveModel

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy