System is processing data
Please download to view
...

Lezionerubyonrails Lettura

by silvano-natalizi-itis-alessandro-volta-perugia

on

Report

Category:

Education

Download: 0

Comment: 0

357

views

Comments

Description

come leggere i dati da una tabella relazionale e caricarli in memoria. Object relational mapping
Download Lezionerubyonrails Lettura

Transcript

  • 1. Come leggere i dati da una tabella relazionale Marzo 2009- Prof. Silvano Natalizi
  • 2.
    • Quando Rails legge le righe di una tabella relazionale, converte ciascuna riga in un oggetto.
    • I dati dei campi della riga sono convertitinegli attributi dell’oggetto creato
    • L'Object-Relational Mapping( ORM ) è una tecnica di programmazione per convertire dati fra RDBMS e linguaggi di programmazione orientati agli oggetti
  • 3.  
  • 4.
    • Un record ha molti campi con dati in ciascuno di essi.
    • Come fanno tutti questi dati ad essere memorizzati in un singolo oggetto?
    • La risposta è che un oggetto ha parecchi attributi.
    • Un attributo di un oggetto è come un campo di un record di una tabella relazionale
    • Ha un nome ed un valore
    • Quando Rails legge il valore voto dal record nel database, lo immagazzina nell’attributo @voti.voto dell’oggetto @voti.
    • La stessa cosa avviene per gli altri campi del record.
  • 5.
    • L’oggetto @voti esattamente combacia con il record del database
    • Ciò è importante perché questo oggetto in memoria è visibile dal codice della view!
    • I dati sono in memoria e la pagina web li può vedere
    • La pagina show.html.erb dispone di questi dati.
  • 6.  
  • 7.  
  • 8.
    • Una pagina indice ha la lista di tutti i record della tabella.
    • Ogni riga della pagina è una riga della tabella con alcuni dei suoi campi
    • È utile avere una pagina web così fatta, per permettere ai navigatori di avere una visione globale dei dati disponibili e quindi magari di esaminare in dettaglio quello al quale sono interessati
  • 9.
    • La pagina indice necessita dei dati da tutti i record della tabella relazionale
    • Il codice del controllore viene eseguito solo una volta prima che la pagina web sia mostrata.
    • Pertanto tutte le righe della tabella devono essere lette completamente in un colpo solo prima che sia mostrata la view
  • 10.
    • Come fa il controllore a leggere tutti gli oggetti del modello e ad inviarli alla view?
    • Voti.find(:all)è un metodo finder che legge tutti i record in un colpo solo.
    • Il modello restituisce un solo oggetto che contiene i dati di ogni record della tabella
    • Il controllore può assegnare questo oggetto ad una singola variabile
    • Ma come può assegnare tutti questi dati con un numero sconosciuto di riche ad un singolo oggetto ?
    • Che cosa è questo oggetto ?
  • 11.
    • Invece di restituire un oggetto contenente i dati di un singolo record, il metodo find crea tanti oggetti, uno per ciascun record e li coagula in un unico array
    • Voti.find(:all) restituisce un singolo array
    • Questo array contiene tanti model objects quante sono le righe della tabella del database
    • La view invece di vedere un numero sconosciuto di modelli d’oggetti in memoria, ha a che faro solo con un array per ottenere l’accesso a tutti gli oggetti.
  • 12.  
  • 13.  
  • 14.  
  • 15.
    • Un libro bellissimo
    • An amazing book :
    • Head First Rails :
    • Oreilly
    • David Griffiths
  • Fly UP