Ruby on Rails 3: Введение в ActiveRecord

февраля 9, 2012  |  Published in Ruby on Rails, Ruby on Rails 3  |  8 Comments

ruby on rails tutorialRubyDev — ваш друг в изучении Ruby и Rails!

В этой главе вы узнаете более подробно о том, что такое модель, чем занимается ActiveRecord входящий в состав Ruby on Rails, что такое ORM и что такое миграции.

Что такое модель?

Из предыдуших глав или из своего опыта разаботки на других языках программирования и платформах вы уже должно быть знаете, что такое модель, но я вынужден повториться:

Модель — это часть приложения, которая непосредственно работает с данными, то есть хранит бизнес-логику приложения.

В Ruby on Rails модельная прослойка реализована в виде модуля ActiveRecord. ActiveRecord предоставляет паттерн ORM для работы с записями в базе данных и не только ORM.

Что такое ORM?

ORM (Object Relation Mapping) — паттерн проектирования, который сводится к достаточно простой вещи — представлению записей в виде объектов.

Что такое ActiveRecord?

ActiveRecord — это фреймворк для работы с реляционными базами данных (MySQL, PostgreSQL, SQLite и т.д.). ActiveRecord реализует в себе не только паттерн ORM, но и миграции, валидацию, обратные вызовы (коллбеки), паттерн «Наблюдатель», ассоциации между записями и много-много чего еще.

В приложении на Ruby on Rails модели хранятся в директории app/models вашего приложения в файлах, что носят имена соответствующие именам классов-моделей: Post -> app/models/post.rb.

Модель в случае использования ActiveRecord представляет собой класс наследуемый от класса — интерфейса ActiveRecord::Base, например:

class Post < ActiveRecord::Base
end

Приведенный выше пример модели наследуясь от класса ActiveRecord::Base наследует от него всю мощь ActiveRecord, по этому приведенные выше две строки кода уже умеют делать очень многое!

Что такое миграции?

Миграции — это файлы в которых описывается структура базы данных. Каждый раз, когда вы используете генератор для создания ActiveRecord модели — вы создаете и соответствующий ей файл миграции. Вы можете создавать миграции отдельно от моделей, например, когда вам необходимо добавить или удалить поля в уже существующей таблице.

Миграции очень удобны для создания и редактирования и управления структурой базы данных. Миграции позволяют абстрагироваться от базы данных и использовать код написанный на изящном Ruby для определения схемы базы данных. Кроме того миграции упрощают разворачивание вашего проекта на сервере и позволяют всего одной командой создать все необходимые для работы приложения таблицы в базе данных.

 

Лучшая благодарность автору — ваши комментарии и популяризация ресурса! Спасибо всем за внимание к проекту и моральную поддержку его автора. Не забывайте о нашей группе во Вконтакте: !

Tags: , , , , ,

Responses

  1. Павел says:

    февраля 10, 2012 at 06:53 (#)

    Хотелось бы таких статей не видеть. Ибо этого хлама и так много. Зачем документацию своими словами переписывать?

  2. admin says:

    февраля 10, 2012 at 21:18 (#)

    Павел, учебник должен быть полным потому без таких простых статей не обойтись. Кроме того в туториалах нет некоторых моментов.

  3. says:

    февраля 13, 2012 at 12:49 (#)

    согласен с павлом. как собаке пятая нога такие статьи нужны

  4. Programer_S says:

    марта 17, 2012 at 16:58 (#)

    Для человека который видит руби в первый раз эта статья то что надо, помагает разобратся с основами. Желатьлно канешн побольше примеров каких нибуть.

  5. Aaa says:

    мая 2, 2012 at 11:52 (#)

    to Павел, omg
    идите в жопу мегаРубиПапки!

    Автору спасибо

  6. em says:

    августа 25, 2012 at 22:28 (#)

    Я только начинаю вникать в руби, и рельсы, могу сказать что подобные статьи помогают усвоить и закрепить новую информацию. Поэтому не соглашусь с «критиками», публикация полезная

  7. Гадель says:

    декабря 9, 2012 at 15:45 (#)

    Спасибо за статьи.

  8. Паша says:

    февраля 21, 2014 at 08:58 (#)

    Мне понравилась статья, но показалась короткой. Хоть понял, что это такое. Спасибо.

Leave a Response

Для подсветки кода используйте BB - коды: [language]...[/language], где language может быть: ruby, javascript, css, html.