Обзор фреймворка Ruby on Rails, MVC в Ruby on Rails, Модель: объектно-реляционное отображение (ORM) и ActiveRecord - Разработка модуля для хранения и управления документами в электронном виде

Веб-фреймворк Ruby on Rails разработан на языке Ruby и является вторым по популярности по версии http://hotframeworks. com.

Основными чертами фреймворка являются встроенные механизмы повторного использования, предотвращающие дублирование кода. Помимо этого, во фреймворк заложен принцип превалирования соглашения над конфигурацией. Это означает, что для каждого аспекта приложения имеются рациональные соглашения, которые при необходимости можно переопределить. Этот принцип позволяет минимизировать код приложения.

MVC в Ruby on Rails

Как было сказано выше, Ruby on Rails является MVC-фреймворком и навязывает разработчику структуру приложения. Написание программы в общем случае сводится к созданию модели данных, реализации в ней бизнес-логики, разработке шаблонов (видов) для моделей и написанию контроллеров, определяющих логику взаимодействия модели, шаблонов и пользователя. Рассмотрим эти процессы подробнее.

Модель: объектно-реляционное отображение (ORM) и ActiveRecord

Программы на Ruby on Rails используют для хранения информации реляционные базы данных. В связи с этим возникает необходимость отображения таблиц и данных, хранящихся в них, на классы и объекты языка программирования для упрощения написания программ. Технология ORM решает эту проблему, создавая программную прослойку между базой данных и приложением.

В технологии ORM таблицы базы отображаются на классы языка, записи -- на объекты, столбцы -- на свойства объекта. Таким образом программист получает возможность абстрагироваться не только от языка запросов к базе данных, но и от самой табличной структуры данных, работая с классами и объектами.

Для разных языков существуют различные библиотеки для реализации технологии ORM, такие как Propel, Doctrine (для PHP), Hibernate (Java), SQLAlchemy (Python) и Sequel (Ruby).

Ruby on Rails предоставляет разработчику модуль ActiveRecord -- реализацию одноименного шаблона проектирования для создания объектно-реляционного отображения. ActiveRecord тесно интегрируется со средой Rails и выполняет ряд дополнительных функций, таких как проверка приемлемости данных, извлечение данных из веб-форм.

Class Employee < ActiveRecord::Base
End
Employee = Employee. find(1)
Employee. name = 'Ivan'
Employee. save

В приведенном примере создается класс, наследуемый от базового класса ActiveRecord. Подразумевается, что в базе данных создана таблица employees, с такими полями как id и name. Ниже создается экземпляр класса, получаемый методом find класса Employee, при этом создается неявный запрос к базе:

SELECT 'employees'.* FROM 'employees' WHERE 'employees'.'id' = 1 LIMIT 1

Похожие статьи




Обзор фреймворка Ruby on Rails, MVC в Ruby on Rails, Модель: объектно-реляционное отображение (ORM) и ActiveRecord - Разработка модуля для хранения и управления документами в электронном виде

Предыдущая | Следующая