2010-02-03 7 views

Répondre

21

ORM est Object Mapper Relational. Cela signifie que vous n'avez pas à appeler manuellement la base de données vous-même; l'ORM le gère pour vous. Ruby on Rails en utilise un appelé ActiveRecord, et c'est vraiment un bon choix.

ORM vous permet de faire des choses telles que:

User.find(50).contacts 

Au lieu d'écrire manuellement une instruction SELECT avec JOIN, wheres, etc.

+0

Maintenant, je l'ai eu mike.Is der tout autre ORM puis enregistrement actif? – Arun

+1

Il existe d'autres outils ORM pour Ruby (DataMapper, Sequel, Friendly, etc.), et il y en a pour Ruby on Rails (DrySQL), mais Active Record est généralement utilisé avec Rails. Il y a beaucoup d'ORMs pour d'autres langues; Hibernate est probablement le plus connu. –

+0

Dans Rails officiellement ("out of the box") c'est juste ActiveRecord. Pour Ruby, il y a quelques autres ORM (un appelé DataMapper qui semble attirer beaucoup d'attention), mais ceux-ci demandent du travail pour se lever et travailler dans Rails. – RyanWilcox

1

ORM est Object Relational Mapper. Cela signifie que vous n'avez pas à appeler manuellement la base de données vous-même; l'ORM le gère pour vous. Ruby on Rails en utilise un appelé ActiveRecord, et c'est un très bon.

Active Record comme un cadre ORM

Active Record nous donne plusieurs mécanismes, le plus important étant la capacité à:

> 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 est synonyme de l'objet-Relational-Mapping. Cela signifie qu'Active Record prend des données stockées dans une table de base de données en utilisant des lignes et des colonnes, qui doivent être modifiées ou récupérées en écrivant des instructions SQL (si vous utilisez une base de données SQL) et vous permet d'interagir avec ces données comme si c'était un objet Ruby normal. Exemple: Supposons que vous vouliez récupérer un tableau de tous les utilisateurs, puis au lieu d'écrire un code pour la connexion à la base de données, puis d'écrire une requête SQL comme SELECT * FROM users et convertir le résultat en tableau, je peux simplement taper User.all et Active Record me donne ce tableau rempli d'objets utilisateur avec lesquels je peux jouer comme je le voudrais.

Peu importe le type de base de données que vous utilisez. Active Record supprime toutes les différences entre ces bases de données pour que vous n'ayez pas à y penser. Vous vous concentrez sur l'écriture de code pour votre application, et Active Record réfléchira aux détails de la connexion à votre base de données. Cela signifie également que si vous passez d'une base de données à une autre, vous n'avez pas besoin de modifier un code d'application majeur, mais seulement quelques fichiers de configuration.