Сериализация полей - Разработка модуля для хранения и управления документами в электронном виде
Документ может содержать произвольное количество полей различных типов (номер, имя, фамилия, отчество и т. д.). Программист, реализующий наследников класса Document, сам определяет набор, названия и логику заполнения полей. Очевидным становится невозможность хранения каждого поля в отдельном столбце таблицы documents. Разумное решение проблемы -- использование механизма сериализации, который также поддерживается средой Ruby on Rails.
Сериализация позволяет сохранять произвольную структуру языка Ruby (в частности, хеш) в строковое поле таблицы БД для последующего ее извлечения.
В разрабатываемом модуле модель документа содержит поле data, в которое сериализуются поля. Набор полей указывается конечным разработчиком в конкретном классе.
Каждому полю добавлены методы доступа (getter и setter) для удобной работы с экземпляром класса. Методы реализованы таким образом, что с точки зрения конечного программиста работа ведется с отдельными атрибутами объекта, а с точки зрения класса -- с одним и тем же полем data.
Пример.
- 1) Создается класс-наследник с единственным полем number: 2) class Inn < document 3) document_field :number #добавление поля 4) end 5) создается объект класса, инициализируется единственное поле, и из него извлекается значение: 6) doc = inn. new 7) doc. number = 12345678 #сеттер для инициализации 8) print doc. number #геттер для получения значения
Пример показывает, что программист работает с полями документа, как с обычными атрибутами. Однако методы доступа сохраняют и извлекают значения из хеша, хранимого в атрибуте data, сериализуемом и проецируемом на одноименное поле в таблице documents базы данных.
После приведенных в примере преобразований атрибут data объекта doc будет содержать хеш следующего вида:
{:number => 12345678}
Похожие статьи
-
Документы должны иметь различные типы, которые определяют логику их поведения. Должна быть возможность создать новый тип документа и определить его...
-
Среда Rails поддерживает работу с большинством современных баз данных, таких как MySQL, SQLite, PostgreSQL. Для этого используются различные адаптеры,...
-
Разработка модели модуля с учетом архитектурных решений Полиморфные связи Документ может относиться к объектам различного типа, поэтому разумно...
-
Анализ требований к модулю электронных документов Сущность документа Разрабатываемый модуль должен вводить в приложение новую сущность -- документ,...
-
Веб-фреймворк Ruby on Rails разработан на языке Ruby и является вторым по популярности по версии http://hotframeworks. com. Основными чертами фреймворка...
-
Flagship Docs представляет собой популярную систему управления документами, разработанную компанией RPI Web Tech Group. Данная система решает широкий...
-
Общие сведения о системах контроля версий При разработке программного обеспечения необходимо иметь подробную историю изменений в исходных кодах...
-
Контроллер является связующим звеном между пользователем, представлением и моделью. Он получает запросы от пользователя, взаимодействует с моделью и...
-
Введение - Разработка модуля для хранения и управления документами в электронном виде
Актуальность Во многих современных системах автоматизированного управления бизнес-процессами предприятий возникает необходимость в организации и...
-
Цель Работы - использовать принципы архитектуры "Документ-Представление" для выборки и сохранения данных в файлах, а также взаимодействия элементов меню,...
-
На рис. 4 представлена схема работы Rails-приложения. Рассмотрим ее подробнее: 1) клиент из браузера посылает запрос на сервер; 2) запрос обрабатывается...
-
В настоящее время существует множество систем управления информационными ресурсами предприятия (ECM - Enterprise content management ), предназначенных...
-
Вид - Разработка модуля для хранения и управления документами в электронном виде
Представления в Ruby on Rails реализованы в виде Erb-шаблонов -- html-файлов со вставками кода на языке Ruby. Дополнительная логика, внедряемая в шаблон,...
-
Еще одна причина выбрать git в качестве системы контроля версий -- сильное и профессиональное сообщество, возникшее на сайте GitHub (https://github....
-
Сравнение Git и SVN - Разработка модуля для хранения и управления документами в электронном виде
Аргументы в пользу Subversion: 1) централизованность системы позволяет не хранить на компьютере весь репозиторий, а лишь срез репозитория -- конкретную...
-
Git - Разработка модуля для хранения и управления документами в электронном виде
Git -- распределенная система контроля версий, разработанная создателем ядра Linux Линусом Торвальдсом в 2005 году. Система быстро набрала популярность и...
-
Обзор паттерна MVC Впервые описал схему Model-view-controller (Модель-вид-контроллер) Трюгве Реенскауг, норвежский ученый из университета в Осло,...
-
Модуль должен поддерживать механизм состояний документов. На стадии разработки технического задания были выделены следующие состояния: - Черновик...
-
Работа с контентом Контент системы содержит как отдельные медийные составляющие - текст, таблицы, ссылки, графику, так и связанные между собой....
-
Объектно-ориентированное программирование-технология программирования, при которой программа рассматривается как набор дискретных объектов, содержащих, в...
-
Subversion - Разработка модуля для хранения и управления документами в электронном виде
Сайт: http://subversion. apache. org/ Subversion -- централизованная система контроля версий, распространяемая под свободной лицензией (Apache License)....
-
Тестирование - Разработка модуля для хранения и управления документами в электронном виде
С запуска нового проекта на Rails среда создает для него всю необходимую тестовую инфраструктуру. Фреймворк поддерживает следующие виды тестов: 1)...
-
Появление на рынке систем управления электронными документами - EDMS (Electronic Document Management Systems) вызвано стремлением сократить поток...
-
Объекты области временного хранения классифицируются по предметным областям. Аутентичность исходным данным Заказчика в объектах DF , TD и R достигается...
-
В работе использовались следующее программное обеспечение для решения поставленных задач: AutoCAD, ANSYS Workbench, ANSYS Icepak. Система AutoCAD...
-
SimpleXML. В PHP версии 5.0 и выше появилось расширение для работы с xml структурой. Библитека SimpleXML содержит большое количество методов для работы с...
-
В ходе проектирования объектов зачастую происходит многократное повторение различных операций проектирования. Основная причина заключается в том, что...
-
Понятие Data Mining Средства Data Mining включают в себя очень широкий класс различных технологий и инструментов. Средства Data Mining на рынке...
-
Цель Работы - изучить приемы создания и использования шаблонов классов. - Теоретические сведения Достаточно часто встречаются классы, объекты которых...
-
В течении года от команды разработчиков пришло 6 пакетов, содержащих изменения в ядре программы. Для каждого пакета составлялось в среднем от 1-ого до...
-
Концепция построения программы Список всех классов приведен на рисунке 3.1. Рисунок 3.1 - Диаграмма классов программы В качестве главного класса...
-
Этапы проектирования и создания БД - Система управления базами данных
При разработке БД можно выделить следующие этапы работы. I этап. Постановка задачи. На этом этапе формируется задание по созданию БД. В нем подробно...
-
Типы полей ограничивают вводимую пользователем информацию по содержанию. В Системе используются следующие типы полей данных: Text . Поле ввода текста в...
-
Метод свертывания частных критериев является одним из наиболее распространенных среди методов решения задач многокритериальной оптимизации. При...
-
При разработке различных объектов и процессов в большинстве случаев требуется ввести более одной целевой функции. В этом случае, намного эффективней...
-
К задачам параметрической оптимизации, относятся следующие задачи: - Определение оптимальных значений параметров. - Назначение оптимальных допусков на...
-
Основные понятия и определения Прежде чем приступить к обсуждению вопросов оптимизации, введем ряд определений и рассмотрим основные понятия. Оптимизация...
-
Назначение и область применения Модуль библиотеки частных критериев оптимальности применяется для автоматизации формирования и расчета значений целевой...
-
Настоящий дипломный проект посвящен решению задачи разработки библиотеки частных критериев для комплекса многокритериальной и многопараметрической...
-
Общие сведения Наименование системы Разработка вычислительной системы для автоматизации жилого помещения с использованием системы умный дом Назначение...
Сериализация полей - Разработка модуля для хранения и управления документами в электронном виде