Ruby on Rails

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Ruby on Rails
Ruby logo.png
Тип програмний каркас вебзастосунків
Автор(и) David Heinemeier Hansson
Розробник Rails Core Team
Стабільний випуск 5.2.1 (7 серпня 2018; 3 роки тому (2018-08-07))
Репозиторій github.com/rails/rails
Операційна система крос-платформовий
Мова програмування Ruby
Стан розробки активний
Ліцензія MIT
Вебсайт rubyonrails.org

CMNS: Ruby on Rails у Вікісховищі

Ruby on Rails — об'єктно-орієнтований програмний каркас (фреймворк) для створення вебзастосунків, написаний на мові програмування Ruby. Ruby on Rails надає каркас модель-вид-контролер (Model-View-Controller) для вебзастосунків, а також забезпечує їхню інтеграцію з вебсервером і сервером бази даних.

Ruby on Rails був створений Девідом Гайнемаєр Генссоном (англ. David Heinemeier Hansson) на основі його роботи над засобом керування проектами Basecamp і був випущений в липні 2004 року. Ruby on Rails є відкритим програмним забезпеченням і розповсюджується за ліцензією MIT.

Принципи[ред. | ред. код]

Ruby on Rails визначає принципи розробки застосунків:

  • Застосунки не повинні визначати власну архітектуру, оскільки вони використовують готовий каркас модель-вид-контролер.
  • Мова Ruby дозволяє використовувати нотацію, що легко читається, для визначення семантики вебзастосунків (таких як відносини між таблицями в базі даних).
  • Ruby on Rails надає механізми повторного використання, що дозволяють мінімізувати дублювання коду у вебзастосунку (принцип Don't Repeat Yourself — не повторюй себе).
  • За замовчуванням використовуються угоди по конфігурації, типові для більшості вебзастосунків (принцип Convention over configuration — угоди над конфігурацією). Явна специфікація конфігурації потрібна тільки в нестандартних випадках.

Архітектура[ред. | ред. код]

Основними компонентами застосунків Ruby on Rails є модель (model), вид (view) і контролер (controller).

Модель[ред. | ред. код]

Модель надає решті компонентів програми об'єктно-орієнтоване представлення даних (таких як каталог продуктів або список замовлень). Об'єкти моделі здійснюють завантаження і збереження даних в реляційній базі даних.

Завдяки можливостям динамічної типізації в мові Ruby розробникові досить успадкувати свій клас моделі від базового класу ActiveRecord::Base. Ruby on Rails автоматично пов'язує класи моделі з таблицями в базі даних і створює атрибути об'єктів для відповідних полів таблиці.

Вид[ред. | ред. код]

Вид створює інтерфейс користувача для відображення отриманих від контролера даних. Вид також передає запити користувача на маніпуляцію даними в контролер (як правило, вид не змінює безпосередньо дані з моделі).

У Ruby on Rails вид описується за допомогою шаблонів RHTML. Вони є файлами HTML з додатковими включеннями фрагментів коду Ruby (Embedded Ruby або ERb). Вивід, згенерований вбудованим кодом Ruby, включається в текст шаблону сторінки HTML, яка після цього повертається користувачеві. Види можуть використовувати фрагменти інших видів і, у свою чергу, бути включеними в шаблон (layout) вищого рівня.

Контролер[ред. | ред. код]

Контролер — основний компонент, що відповідає за взаємодію з користувачем. Контролер прочитує необхідні дані з моделі і готує їх для відображення, а також зберігає отримані від відображення дані в моделі.

Контролером в Ruby on Rails є клас, успадкований від ActionController::Base. Відкриті методи контролера є так званими діями (actions). Action часто відповідає окремому видові. Наприклад, по запиту користувача admin/list буде викликаний метод list класу AdminController і потім використаний вид list.rhtml.

Інтеграція[ред. | ред. код]

Ruby on Rails може працювати з Apache, Lighttpd або будь-яким іншим вебсервером, що підтримує FastCGI. Для розробки і зневадження часто використовується вбудований в Ruby вебсервер WEBrick або Mongrel

Як сервер бази даних підтримуються MySQL, Firebird, PostgreSQL, IBM DB2, Oracle і Microsoft SQL Server. Також підтримується вбудована база даних SQLite.

Проекти написані на RoR[ред. | ред. код]

Виноски[ред. | ред. код]

Посилання[ред. | ред. код]

Документи[ред. | ред. код]

Форуми[ред. | ред. код]