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

Introduzione a ActiveRecord

Come funziona il modulo ActiveRecod in Rails
Come funziona il modulo ActiveRecod in Rails
Link copiato negli appunti

ActiveRecord è il modulo di Ruby on Rails gestisce la persistenza dei dati. Il modulo è stato implementato seguendo il pattern Active Record descritto da Martin Fowler, secondo cui:

  • una tabella di un database relazionale è gestita attraverso una classe
  • una singola istanza della classe corrisponde ad una riga della tabella
  • alla creazione di una nuova istanza viene creata una nuova riga all'interno della tabella, e modificando l'istanza la riga viene aggiornata

La classe è descritta in buona parte dalla tabella che rappresenta ed espone i metodi necessari per leggere e scrivere i record.

Le colonne della tabella sono rappresentate come attributi della classe e ogni istanza è in grado di effettuare operazioni "su sé stessa" come salvarsi, cancellarsi, aggiornare il valore dei propri attributi e renderli persistenti nel database.

Quindi possiamo creare un'istanza di un oggetto (che rappresenta un record), modificarne gli attributi (i campi, o colonne) e rendere persistente il dato (effettuare una INSERT o una UPDATE) operando esclusivamente con un oggetto e lasciando che ActiveRecord faccia il resto.

Con ActiveRecord è possibile utilizzare diversi tipi di database: SQLite, MySQL, Postgresql, Oracle, IBM DB/2 ed è possibile scrivere driver personalizzati per altri database relazionali. Per configurare la connessione al database è necessario modificare il file config/database.yml. Il file contiene una configurazione differente per ognuno degli ambienti (environment) predisposti da Rails (development, production, test). Per ogni environment è possibile specificare i diversi parametri della connessione fra cui:

Parametro Descrizione
adapter per specificare il tipo di database che si vuole utilizzare
host l'host a cui risponde il database
port la porta
username/password le credenziali dell'utente per accedere al database
database per specificare il nome del database
encoding il tipo di encoding da utilizzare per la connessione

Secondo il pattern Active Record esiste una relazione molto stretta fra tabella e classe, colonne e attributi della classe. Questa relazione viene espressa dal modulo ActiveRecord di Rails facendo largo uso di convenzioni sui nomi da assegnare a tabelle, classi, colonne e attributi; se non sono presenti configurazioni particolari del modello, sono valide le seguenti convenzioni:

  • per ogni modello esiste una tabella avente come nome il nome del modello al plurale e in caratteri minuscoli. Nel nostro caso per il modello Bookmark la tabella corrispondente è bookmarks
  • nel caso di modelli con nome composto di più parole, il nome del modello ha la prima lettera di ogni parola maiuscola, mentre la tabella ha sempre il nome tutto in minuscolo e separa le parole con un trattino basso (underscore). Ad esempio al modello BestPractice corrisponderà la tabella best_practices
  • per ogni colonna della tabella viene reso disponibile il relativo attributo con lo stesso nome
  • ogni tabella ha una colonna id (intero positivo) che identifica univocamente ogni record

Utilizzando queste le convenzioni è possibile evitare di scrivere noiosi file di configurazione.

Ti consigliamo anche