Secondo quanto dichiarato da David Heinemeier Hansson, il creatore di Ruby on Rails, durante la scorsa edizione della RailsConf, gli sviluppatori dovrebbero avere un atteggiamento meno critico nei confronti delle applicazioni monolitiche, questo perché i tempi in cui per realizzare un progetto Web erano sufficienti HTML e CSS sarebbero ormai passati, ammesso che siano mai esistiti; da questa constatazione nascerebbero anche alcune delle caratteristiche relative al progetto Rails 5.
Dal punto di vista delle features questa versione dovrebbe presentare #belongs_to
come impostazione predefinita, la nuova opzione config.active_record.belongs_to_required_by_default
sarà settata su "true" con una migliore gestione degli errori di validazione; ActiveRecord::Relation
si avvarrà del metodo #or
, che permetterà di semplificare la scrittura delle query con ActiveRecord DSL, mentre una nuova interfaccia di programmazione per i models ActiveRecord consentirà di operare override degli attributi.
E' stato poi semplificata la possibilità di creare token (come per esempio quelli il reset delle password), l'adapter ActiveRecord per MySQL supporterà il formato JSON, si potrà ottenere il rendering di un template al di fuori dei controller e, grazie a Turbolinks 3 e ai custom data attributes di HTML5, le applicazioni dovrebbero garantire un miglior livello di performance. Da segnalare anche ActionCable, un framework per le comunicazioni in tempo reale tramite Web socket.
Per il momento non è disponibile una data per il rilascio della milestone che, comunque, dovrebbe avvenire entro l'anno; con Rails 5 ci si attende la rimozione di alcune componenti, come per esempio i metodi #deliver
e #deliver!
di ActionMailer e il supporto per le gem protected_attributes
e activerecord-deprecated_finders
dell'ActiveRecord, mentre alcune ActionPack assertion (assert_template
e assigns()
) saranno considerate deprecate.
La riduzione dell'object allocation, la rimozione di dipendenze non necessarie, l'ottimizzazione delle operazioni più frequenti nonché l'adozione di Ruby 2.2.x dovrebbero garantire prestazioni molto più elevate rispetto al passato.
Via Michelada.io