2010-02-03 10 views

risposta

21

ORM è Object Relational Mapper. Significa che non è necessario chiamare manualmente il database manualmente; l'ORM lo gestisce per te.

Ruby on Rails utilizza uno chiamato ActiveRecord ed è davvero buono.

ORM permette di fare cose come:

User.find(50).contacts 

Invece di scrivere manualmente un'istruzione SELECT con join, wheres, ecc

+0

Ora ho capito mike.È qualsiasi altro ORM quindi record attivo? – Arun

+1

Esistono altri strumenti ORM per Ruby (DataMapper, Sequel, Friendly, ecc.) E ce ne sono alcuni per Ruby on Rails (DrySQL), ma Active Record viene generalmente utilizzato con Rails. Ci sono molti ORM per altre lingue; Hibernate è probabilmente il più conosciuto. –

+0

In Rails ufficialmente ("out of the box") questi sono solo ActiveRecord. Per Ruby ci sono alcuni altri ORM (uno chiamato DataMapper che sembra ricevere molta attenzione), ma questi altri richiedono un po 'di lavoro per alzarsi e lavorare in Rails – RyanWilcox

1

ORM è l'oggetto mapper relazionale. Significa che non è necessario chiamare manualmente il database manualmente; l'ORM lo gestisce per te. Ruby on Rails ne usa uno chiamato ActiveRecord, ed è davvero buono.

attivo Record come un ORM quadro

attivo Record ci dà diversi meccanismi, la più importante è la capacità di:

> Represent models and their data. 
> Represent associations between these models. 
> Represent inheritance hierarchies through related models. 
> Validate models before they get persisted to the database. 
> Perform database operations in an object-oriented fashion. 

click hear

3

ORM sta per Object-Relational-Mapping. Significa fondamentalmente che Active Record prende i dati che sono memorizzati in una tabella di database usando righe e colonne, che devono essere modificati o recuperati scrivendo istruzioni SQL (se stai usando un database SQL), e ti permette di interagire con quei dati come se fosse un normale oggetto Ruby.

Esempio: Si supponga di voler recuperare un array di tutti gli utenti allora invece di scrivere codice per la connessione al database e quindi scrivendo alcune query SQL come SELECT * FROM users e convertendo il risultato in un array, posso solo scrivere User.all e Active Record mi dà quell'array pieno di oggetti User con cui posso giocare come vorrei.

Non importa quale tipo di database si sta utilizzando. Active Record appianta tutte le differenze tra quei database per te, quindi non devi pensarci. Ti concentri sulla scrittura del codice per la tua applicazione e Active Record penserà ai dettagli nitidi di connessione al tuo database. Significa anche che se si passa da un database a un altro, in realtà non è necessario modificare alcun codice principale dell'applicazione, solo alcuni file di configurazione.