Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пример диплома специалиста / 003 Опис програми.docx
Скачиваний:
10
Добавлен:
28.03.2016
Размер:
1.15 Mб
Скачать

02070743.00569-01 13 01

Встановлюються вони командою gems install file.gem. Вони автоматично встановляться в каталог C:\rails\ruby\bin\gems\<версия_Gems>\gems.

УВАГА: дотримуйте вказаної послідовності установки бібліотек, оскільки при їх установці відбувається їх прив'язка до Ruby.

Після завершення процесу установки переконаєтеся, що в каталозі C:\rails\ruby\bin з'явилися файли

  1. Rails

  2. Rails.bat

  3. Rails.cmd

  4. Mongrel_rails

  5. Mongrel_rails.bat

  6. Mongrel_rails.cmd

Перший і четвертий файл є файлами конфігурації для бібліотеки (Gem-пакета), а інші використовуються для запуску інтерпретатора Ruby з підвантаженням або Rails, або сервера Mongrel

3.1.3. Конфігурація mysql

Для установки MYSQL необхідно викачати настановний пакет MYSQL з офіційного сайту http://mysql.com або іншого джерела. Встановити його, наприклад, в каталог C:\rails\mysql і конфігурувати файл C:\rails\mysql\MY.INI так:

[mysqld]

datadir= C:\rails\mysql\data

basedir= C:\rails\mysql

bind-address=127.0.0.1

Власне, MYSQL відразу після установки запропонує провести конфігурацію системи. Встановити необхідно наступні опції:

  • Detailed Configuration

  • 8

    02070743.00569-01 13 01

    Developer Machine

  • Multifunctional Database

  • Decision Support (DSS) /OLAP

  • Enable TCP/IP Networking

  • Port Number: 3306

  • Manual Selected Default Character Set / Collation:

  • cp1251

  • Install As Windows Service

  • Launch the MYSQL Server automatically

  • Modify Security Settings

3.2. Створення Web-додатку

Після того, як встановлені Ruby, Rails, Mongrel, MYSQL, можна приступати до створення додатку.

Ми вже визначилися, що будуватимемо Web-додаток, заснований на базі даних, і з'ясували, що застосовуватимемо шаблон проектування MVC для його реалізації. Rails надає можливість згенерувати початковий каркас MVC, чим ми і скористаємося.

Для цього в командному рядку треба задати команду

Rails Diplom

Після виконання цієї команди у файловій системі з'явитися така ієрархія каталогів:

арр

controllers - тут знаходитися реалізація контролерів

helpers

models - тут знаходиться реалізація моделей

9

02070743.00569-01 13 01

views - тут знаходиться реалізація виглядів

config - тут знаходиться файл конфігурації environment.rb, файл опису адаптера бази даних database.yml і файл розбору запитів routes.rb.

db

migrate - тут знаходиться послідовність файлів з реалізацією класу ActiveRecord::Migrate, для створення структури бази даних.

doc

lib

log

public

javascripts - тут знаходяться набір зумовлених скриптів для створення динамічних Web-сторінок (у частості з використанням технології AJAX)

images - тут знаходяться ресурси для сайту

stylesheets - тут знаходяться файли з CSS розміткою сторінок

script

test

vendor

Для створення Web-додатку треба буде розробити і описати модель даних, систему представлення сайту користувачем і взаємодію моделі і вигляду. Розглянемо кожну з цих частин окремо.

3.2.1. Створення моделі даних (model)

Для свого Web-додатку я розробив таку ієрархію таблиць даних. Тут засадничою таблицею буде Tickets, яка містить в собі інформацію про проблему, яку необхідно вирішити. Таблиця Categories визначає категорію заданої проблеми із заданого домена значень (зокрема: загальна проблема, проблема проектування, проблема реалізації або проблема тестування). Таблиця TicketStatuses описує варіанти стану проблеми (нова, низький пріоритет, середній пріоритет, високий пріоритет, дозволена). Таблиця Users описує інформацію про користувачів, залучених у вирішення проблеми, Ticketlogs – про всі ключові зміни у вирішенні проблем, а TicketText містить вміст всіх статусів, пояснень і коментарів даної проблеми.

10

02070743.00569-01 13 01

Таблиця Sessions відповідає за збереження поточних даних сесії і є, разом з Schema_info, допоміжною системною таблицею. Т.ч. схема даних мого додатку виглядатиме таким чином

Рис. 3.6. Схема даних системи відстежування помилок

11

02070743.00569-01 13 01

Опис таблиць в db/migrate наводиться в додатку А.

Тепер напишемо реалізацію класу ActiveRecord::Base для кожної з приведених таблиць з вказівкою стосунків таблиць і валідаторів полів (див. додаток А)

3.2.2. Створення контролерів (controller)

Система відстежування помилок має на увазі різний рівень доступу до моделі і, відповідно, різну реакцію системи на певні дії системи. Рівнів користування системою буде три: користувач, що задає проблему, робітник, що її реалізовує, і адміністратор, який стежить за процесом, вносить якщо треба свої корективи і управляє користувачами і робітниками.

Контролери розташовуються в каталозі app/controllers. Таке нехитре правило допомагає розробникові не морочитися в призначеннях кожного каталогу проекту, особливо якщо проект масштабний. Ім'я контролера повинне складатися з назви самого контролера і слова Controller, а назва файлу – із словом <имя>_controller.rb. у нашому випадку буде 4 контроллери: ApplicationController (application_controller.rb), AdminController (admin_controller.rb), TechController (tech_controller.rb) і UserController (user_controller.rb). Контролери необхідно успадкувати від класу ActionController::Base.

Для всіх трьох рівнів управління існують загальний операції, такі як зміна пароля, зміна інформації про аккаунт і вихід з системи. Ці операції варто винести в базовий клас ApplicationController (див. додаток 3).

Для аккаунта адміністратора передбачені операції аутентифікації користувача-адміністратора, створення нових користувачів / категорій / станів виконання, їх редагування і логування.

Для аккаунта робітника – операції створення / модифікації проблеми, логування і зміна станів проблеми

Для користувача передбачено створення / перегляд проблеми.

12

02070743.00569-01 13 01

Рис. 3.7. Ієрархія контролерів в додатку «система відстежування помилок»

3.2.3. Створення виглядів (view)

Створення призначеного для користувача вигляду грає важливу роль, оскільки вигляд є не лише «обличчям» додатку, але і функціонально описує можливі дії користувача на систему в цілому. У моєму додатку присутній одночасно три різних за родом діяльності і правами користувача, тому потрібно розробити вигляд для кожного з трьох різних типів користувачів.

Наприклад реалізація вигляду для головної сторінки входу до системи адміністратором має наступний вигляд:

13

02070743.00569-01 13 01

Рис. 3.8. Сторінка входу для адміністратора

Призначені для користувача вигляди розташовуються в каталозі app\views. Для кожного з виглядів користувачів виділимо окремий каталог: admin, tech і user. У кожному з каталогів опишемо поведінку системи для кожної одиниці функціональності моделі:

Admin: перегляд і редагування проблем, логування, перегляд і редагування інформації про користувачів.

Tech: перегляд і редагування проблем, логування

User: перегляд і створення проблем, перегляд інформації про свого користувача.

Також виділимо шаблони більш високого абстракції (layouts), в яких скомпонуем елементи представлення окремих користувачів. Для цього визначимо в каталозі app\views\layouts три файли (admin.rhmtl, tech.rhtml, user.rhtml), які виконуватимуть роль контейнерів відповідних наборів функціональностей. Вихідний код шаблонів абстракції приведений в додатку 4, а реалізацію виглядів – в додатку 5