vuoi
o PayPal
tutte le volte che vuoi
Chiaramente, poiché si effettua un filtraggio a priori dei campi avremo un incremento
delle performance.
Associazioni e migrazioni
Le associazioni sono le modalità con cui i record di una tabella sono relazionati ad
un’altra.
Rails permette di modellare le relazioni tra le varie entità nel DB tramite sei diverse
associazioni:
- Belongs_to, sono relazionato a qualcosa ed io dipendo da lui (relazione 1-1)
- Has_one, sono relazionato a qualcun altro e può essere al massimo 1
- Has_one :through, in cui la relazione è modellata attraverso una classe e la
quale dice che sono relazionato con qualcun altro attraverso tale classe
(normalmente poco usata)
- Has_many, sono relazionato a molti record di un’altra tabella (1-N)
- Has_many :through, uguale ad has_many, ma in cui la relazione è modellata da
una tabella
- Has_and_belongs_to_many, relazione N-M
Le migration sono uno strumento per la definizione incrementale di un DB e serve per
migrare da uno stato del DB ad un altro (tipicamente utilizzata per aggiungere
elementi o colonne ad una tabella facilmente).
Possiamo considerare ciascuna migration come una “nuova” versione del database.
Page cashing e russian doll
Rails fornisce diversi meccanismi per il caching di pagine o porzioni di pagine:
Page caching
- , in cui l’intero output di una action di Rails viene archiviato come
file HTML che il server Web può servire senza passare per l’application server in
cui esegue l’applicazione Rails, perché tale pagina HTML è statica e non cambia
mai (non più supportato da Rails, perché tendenzialmente non si usano più, se
non quelle senza stato e uguali per tutti i visitatori).
Action caching
- , analogo al page caching tranne per il fatto che la richiesta
web in entrata arriva fino all’applicazione Rails, (informazioni cachate a livello di
application Server, per cui posso eseguire eventuali verifiche d’accesso prima
che la pagina venga effettivamente restituita all’utente).
Nel momento in cui arriva una richiesta al Web Server esso si domanda se è già
presente nella sua cache locale e nel caso la fornisco indietro, altrimenti faccio
le computazioni per generare la pagina.
L’action caching è relativa alla sessione di un certo utente, per cui ciascuna
pagina cachata sarà diversa per ciascun utente (per gli stessi motivi vista
prima, non è più supportato da Rails).
Fragment Caching
- , la cui filosofia non è più salvare l’intera pagina, ma alcuni
frammenti di pagina.
Questo comporta che una volta computati e creati i frammenti, essendo questi
statici, potranno essere serviti dalla cache ogni volta che viene ricevuta la
richiesta successiva (più efficiente, perché le pagine web dinamiche, perché si
trovano tanti componenti con caratteristiche diverse).