Подтвердить что ты не робот

Разница между активной моделью, активной записью и активным ресурсом

Есть ли кто-нибудь, кто может мне помочь, определяя точную разницу между Active Model, Active Record и Active Resource. Я сделал достаточно гуглинга, чтобы найти точную разницу, но не получил ничего конкретного, который мог бы определить точную разницу между ними. Прямо сейчас все они выглядят одинаково для меня. Поэтому, пожалуйста, дайте мне соответствующий ответ с некоторыми конкретными точками.

4b9b3361

Ответ 1

Rails 3 спроектирован с учетом модульности. Каждый модуль имеет свою собственную цель и функциональность.

ActiveModel. Этот компонент был создан в Rails 3. Они взяли все части, связанные с моделью, у которых не было требования к базе данных Rails 2 ActiveRecord и перенесены в ActiveModel. Таким образом, ActiveModel включает такие вещи, как проверки. Дополнительная информация: http://www.rubyinside.com/rails-3-0s-activemodel-how-to-give-ruby-classes-some-activerecord-magic-2937.html

ActiveRecord. Это компонент, который связывает класс с базой данных. Это даст функциональность класса, такую ​​как методы, позволяющие легко извлекать записи из базы данных (пример - метод поиска).

ActiveResource: аналогично ActiveRecord. Однако вместо поддержки базы данных объект ActiveResource поддерживается другим приложением через API веб-службы. Дополнительная информация: http://ofps.oreilly.com/titles/9780596521424/activeresource_id59243.html

(Не удалось выяснить, о ActiveBase... откуда вы его слышали?)

Ответ 2

Что я понимаю:

ActiveModel + Поддержка базы данных = ActiveRecord

ActiveModel через API WebService = AcitveResource

Ответ 3

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

Подумайте о супер модели, которая постоянно нуждается в проверке.

ActiveModel может использоваться для многих вещей, но в основном распознается для добавления поддержки валидации в записи моделей /db.


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

Подумайте запись, как в записи таблицы.

Устанавливает сопоставление между новым классом и существующей таблицей в базе данных.

В контексте приложения эти классы обычно называются моделями. Модели также могут быть подключены к другим моделям; это делается путем определения ассоциаций.

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

В фоновом режиме рельсы используют ActiveRecord для управления схемой и определения свойств для ваших записей, действуя как ORM (реляционный сопоставление объектов):

" ORM: Объект, который обертывает строку в таблице или представлении базы данных, инкапсулирует доступ к базе данных и добавляет логику домена к этим данным".

В схеме описываются свойства записи.


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

Подумайте ресурс, как R в URL-адресе или маршрутизации ресурса , который задействует многие рельсы.

Позволяет делать такие вещи, как C, R etrieve, U pdate или D estroy ( CRUD) через HTTP.

  tyler = Person.find(1) 

Когда запрос направляется на маршрут ресурса, запрос RESTful сопоставляет свои соответствующие HTTP-глаголы и их взаимодействия с базами данных

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