web-dev-qa-db-fra.com

Différence entre le modèle actif, l'enregistrement actif et la ressource active

Y a-t-il quelqu'un qui peut m'aider en définissant la différence exacte entre le modèle actif, l'enregistrement actif et la ressource active. J'ai fait suffisamment de recherches sur Google pour trouver la différence exacte, mais je n'ai rien obtenu de concret qui puisse faire la différence exacte entre eux. En ce moment, ils me ressemblent tous. Veuillez donc me donner la réponse appropriée avec quelques points concrets.

52
Arif Usman

Rails 3 est conçu avec la modularité à l'esprit. Chaque module a ses propres objectifs et fonctionnalités.

ActiveModel : Ce composant a été créé en Rails 3. Ils ont pris toutes les pièces liées au modèle qui n'avaient pas de base de données exigence de Rails 2 ActiveRecord et déplacé dans ActiveModel. Donc ActiveModel inclut des choses comme les validations. Plus d'informations: http://www.rubyinside.com/Rails-3-0s- activemodel-how-to-give-Ruby-classes-some-activerecord-magic-2937.html

ActiveRecord : il s'agit du composant qui associe une classe à la base de données. Cela donnera à la classe des fonctionnalités telles que des méthodes qui facilitent l'extraction d'enregistrements de la base de données (un exemple est la méthode find).

ActiveResource : similaire à ActiveRecord. Cependant, au lieu d'être soutenu par une base de données, un objet ActiveResource est soutenu par une autre application via une API de service Web. Plus d'informations: http://ofps.oreilly.com/titles/9780596521424/activeresource_id59243.html

(Impossible de comprendre ActiveBase ... d'où l'avez-vous entendu?)

79
richardaday

Ce que je comprends:

ActiveModel + Support de base de données = ActiveRecord

ActiveModel via WebService API = AcitveResource

11
Pengyu Zhao

ActiveModel https://github.com/Rails/rails/tree/master/activemodel

Pensez à un super modèle qui a constamment besoin de validation.

ActiveModel peut être utilisé pour de nombreuses choses, mais surtout reconnu pour ajouter un support de validation aux modèles/enregistrements de base de données.


ActiveRecord https://github.com/Rails/rails/tree/master/activerecord

Pensez enregistrer comme dans l'enregistrement de table.

Configure un mappage entre une nouvelle classe et une table existante dans une base de données.

Dans le contexte d'une application, ces classes sont communément appelées modèles. Les modèles peuvent également être connectés à d'autres modèles; cela se fait en définissant des associations.

  class Firm < ActiveRecord::Base
    has_many   :clients
    has_one    :account
    belongs_to :conglomerate
  end

En arrière-plan, Rails utilise ActiveRecord pour la gestion du schéma et la définition des propriétés de vos enregistrements, agissant comme un ORM (mappeur relationnel d'objet):

" ORM: Un objet qui encapsule une ligne dans une table ou une vue de base de données, encapsule l'accès à la base de données et ajoute une logique de domaine à ces données."

Un schéma décrit les propriétés d'un enregistrement.


ActiveResource https://github.com/Rails/activeresource

Pensez ressource comme le R dans l'URL ou le routage des ressources qui alimente nombreux Rails backends.

Vous permet de faire des choses comme [~ # ~] c [~ # ~] recréer, [~ # ~ ] r [~ # ~] etrieve, [~ # ~] u [~ # ~] pdate, ou [~ # ~] d [~ # ~] estroy (CRUD) via HTTP.

  tyler = Person.find(1) 

Lorsqu'une demande est adressée à une route de ressources, une demande RESTful mappe elle-même ses verbes HTTP correspondants et leurs interactions de base de données

  GET    => Person.find(1)
  POST   => Person.new(:name => 'Tyler', :favorite_page => 'stackoverflow') 
  PUT    => tyler.save
  DELETE => tyler.destroy
7
lfender6445