Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ruby on Rails – висхідна зірка комп’ютерних інф...docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
771.77 Кб
Скачать

8. Active Record

У загальному випадку Active Record представляє собою надбудову, яку пропонує середовище Rails для забезпечення об’єктно-реляційного відображення (ORM – Object-relational mapping). Що ж таке об’єктно-реляційне відображення і для чого воно використовується?

Насамперед потрібно сказати, що ORM – це бібліотеки, що представляють таблиці бази даних у вигляді класів. До прикладу, є база даних і таблиця розмішена у ній під назвою orders. Тоді сама програма буде мати клас, який називається order. Рядки таблиці відповідають об’єктам класу. У межах самого об’єкту для отримання доступу до окремих стовпців використовуються властивості. На рівні класу знаходяться методи, які виконують операції на рівні таблиць. Active Record містить методи CRUD (Create, Read, Update, Delete – створити, прочитати, обновити, видалити).

Повернемось до Active Record. За допомогою конфігурацій по замовчуванню розробнику потрібно якнайменше прикладати зусиль, щоб отримати очікуваний результат. Та це не все. Active Record є надзвичайно могучим інструментом який складає одне ціле з рештою середовища виконання Rails. Якщо веб-форма відсилає прикладні дані, які відносяться до бізнес-об’єкту, Active Record може вийняти їх і помістити у модель. Він підтримує удосконалену перевірку правильності даних моделі, і, за наявності помилки у формі вводу даних, Rails виймає і форматує помилки, при цьому використовуючи всього лиш одну стрічку коду.

До прикладу:

ActiveRecord::Base.establish_connection(:adapter => "mysql", :host => "localhost", :database => "railsdb" )

class Order < ActiveRecord::Base

end

order.Order.find(123)

oder.name = "Dave Thomas"

order.save

У даному прикладі таблиця, що знаходиться в базі даних MySQL переноситься в Active Record. Програма відшукує товар з конкретним ідентифікатором, замінює ім’я покупця і обновлює попередній рядок. При цьому, як бачимо, жодної конфігураційної інформації не знадобилося (крім тої, яка потрібна для підключення бази даних).

9. Скаффолдинг

Scaffolding в перекладі означає будівничі ліси. І тут вже із самої назви зрозуміло для чого призначена ця можливість. Унікальна особливість скаффолдингу дозволяє оприділяти певну структуру програми ще на початку розробки. Противники Rails трактують цю можливість як штучну надбудову, яку необхідно викинути із фреймворку. З одного боку вони праві. Але погляньмо на цю ситуацію очима молодих розробників. І одразу можна побачити переваги такі як:

  • скаффолдинг дає можливість швидко відобразити код перед користувачем для зворотнього зв’язку;

  • швидко добитися бажаного результату;

  • на основі згенерованого коду краще дізнатися як працює Rails;

  • дозволяє використовувати метапрограмування, яке автоматично обновлюється при зміні структури бази даних.

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

З попередніх слів ми вже маємо певне уявлення про скаффолдинг. Проте я пропоную ближче познайомитися з ним на прикладі програмного коду. Та перед тим як перейти до програмування хочу наголосити на те, що даний приклад буде працювати лише на нових версіях Rails, починаючи з 2.0. Справа в тому що розробники нової версії не включили методу scaffold у свої розробки. Це не означає, що його узагалі надалі не буде. Ні, навпаки! Удосконалений скаффолдинг набагато спрощує і автоматизує роботу програміста. Якщо раніше для цього необхідно було створювати модель, редагувати її, мігрувати, розробляти контроллер та прописувати в ньому scaffold :”модель”, то тепер це виглядатиме приблизно так: ruby>generate scaffold «назва контроллера» «поля в базі» «тип». Хіба не простіше? Та річ якраз в тому, що цією простотою досягається швидкість розробки. Адже в наш час темп життя збільшується і, відповідно, програміст повинен працювати не лише якісно, але й швидко.

В описі переваг скаффолдингу я вжила нове слово – метапрограмування. І тому саме зараз хотіла б конкретніше пояснити його значення. Техніка метапрограмування використовує програми для написання прогам. Наприклад інші каркаси використовують генерацію обшириних кусків тексту, що дає можливість користувачу просунутись лише на один крок вперед. Або скрипти налаштування, за допомогою яких можна добавляти власні команди, проте лише в обмедену кількість правильно підібраних точок. Метапрограмування замінює ці дві примітивні техніки, тим самим вилучаючи їх недоліки. Ruby є однією з найкращих мов для мета програмування, а Rails, в свою чергу, успішно використовує цю можливість (звісно, Rails також використовує генерацію команд, але лише у нескладних операціях).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]