Веб-проекти на Ruby on Rails
В цьому курсі ми будемо створювати маленький проект. Результатом навчання буде працююча програма на нашому хостінгу, яку ви зможете включити в своє портфоліо чи додати до резюме. Ваша програма буде працювати на одному з піддоменів сайту школи(напр. library.live-idea.org) і буде доступною для користування усіма бажаючими.
Під час навчання в групі буде працювати професійний веб-дизайнер, або дизайнером буде один із студентів за бажанням.
Ruby — це нова об'єктно орієнтована мова програмування, яку в 1995 році розробив Юкіхіро Матсумото(Yukihiro Matsumoto). Він хотів «скриптову мову, яка буде потужніша за Perl та більше об'єктно-орієнтована ніж Python». Мова Ruby стала дуже популярною завдяки технології Ruby on Rails, що являє собою набір засобів, методів та домовленостей, які дозволяють швидко розробляти динамічні веб-сайти з реляційними базами даних.
Ласкаво просимо в світ технології Ruby on Rails

Ruby On Rails являє собою потужний інструмент для створення певного роду програм. Автори називають його "впертим"
інструментом, оскільки він передбачає прийняття деяких домовленостей для того, щоб отримати найкращі результати при докладанні малих зусиль. У той же час, Rails не є рішенням для усіх веб-задач. Для початку, ви дізнаєтесь про наступні речі:
- Розуміння того, що таке Ruby і звідки взявся Ruby on Rails
- Визначення задач, для яких підходять Рельси і для яких не підходять
- Розуміння того, що означає "вперте програмне забезпечення" та "Конвенції замість конфігурації"
- Особливості мови Ruby, синтаксис, основні конструкції: змінні, цикли і умовні оператори
- Сильні та слабкі сторони Rails фреймворка
- Як Rails використовує MVC шаблон
- Стек програмного забезпечення для запуску веб-програм, написаних на Рельсах (веб-сервер, сервер баз даних)
Установка Ruby, Rails, бази даних і засобів розробки
Ruby, Rails, і решта друзів є безкоштовними і легко встановлюються. Отже, ми вчимося:
- Встановити Ruby
- Використовувати Ruby gems для установки бібліотек для Ruby, Рельсів зокрема
- Встановити базу даних MySQL
- Вибрати інструмент(IDE) для написання і відлагодження коду ваших програм.
Структура Ruby on Rails проекту та вбудовані інструменти
Rails дозволяє зберегти дані проекту організовано в певній структурі каталогів, в якій все має своє місце. Rails включає також ряд вбудованих інструментів для створення та тестування коду. Продовжуємо і вчимося:
- Знайомимося з структурою Rails проекту і дізнаємось що де лежить
- Використовувати "Генератори" для швидкого старту проекту
- Рейлз-консоль для швидкого тестування
- Встановлювати додаткові бібліотеки (Gems) та плагіни у свій проект
- Як користуватись вбудованою системою тестування
Створення простого Ruby on Rails проекту
Найбільш ефективним способом навчання — це створення реального проекту. В процесі ми будемо зупинятись для ліричних відступів та теорії, але ви вже зможете задавати правильні питання, так як теорія вже ляже на практику. Що ж, на цьому етапі ви вчитеся:
- Як з допомогою вбудованих скриптів розпочати створення проекту
- Як запускати проект на вбудованому веб-сервері
- Як організувати підключення до бази даних
- Як писати і запускати тести
- Як в Рельсах використовувати технологію AJAX
Моделі Rails та Activerecord
На цьому етапі ми розглянемо як Рельси полегшують роботу з базами даних. В Рельсах є вбудований ORM модуль Activerecord, який забезпечує відображення об'єктів в таблицях реляційної бази даних та дає інтерфейс для маніпулювання цими об'єктами. Ви дізнаєтеся, як:
- Підключення до бази даних
- Створювати об'єкти та взаємозвязки між ними
- Створювати міграції для легкої зміни структури бази даних
Побудова сторінок з ActionView
Rails шаблони — це шаблони, які ви будете використовувати для побудови сторінок вашої програми. Ми покажемо вам, що ще можна робити цим модулем. А ще можна легко представляти дані в різних форматах, кешувати частини сторінок, розбивати сторінки на частини, які повторюються. Детальний план цього уроку:
- Використання типових шаблонів для створення веб-сторінок
- Написання додаткових модулів з корисними функціями для відображення (Helpers)
- Використання вбудованих функцій для типових завдань, наприклад, відображення помилок користувачу
- Генерування HTML форм в залежності від моделі Rails об'єктів з допомогою вбудованих функцій
- Розбиття сторінок на менші частинки для багаторазового їх використання
- Створення шаблонів сторінок
- Повернення даних у форматах HTML, XML, JSON або JavaScript
Rails Контролери та ActionController
Rails контролери — це вузли, які зв'язують моделі та їх відображення, є наступною темою в нашому курсі. Контролери обслуговують та об'єднують запити користувача, моделі об'єктів, сторінки та форми в цільну систему, яка може вирішувати конкретні прикладні задачі. Ми навчимо вас як:
- Створювати карту шляхів, яка буде з'єднувати запит з конкретним кодом у вашій програмі.
- Зручно передавати дані між користувацьким інтерфейсом та контролерами.
- Використання сесії, кукі, та флешу(вбудований засіб для передавання повідомлення між сторінками)
- Створювати фільтри та керувати ними. Це функції, які виконуються до або після виконання певних дій.
Інтеграція AJAX в Рейлз проект.
Більшість сьогоднішніх веб-програм включають принаймні деяку AJAX функціональність. Для виконання багатьох операцій немає необхідності перезавантажувати всю сторінку. Частина таких операцій є косметичними, тоді як інші передбачають реальну функціональність, наприклад, додавання коментаря без перезавантаження сторінки. Rails дозволяє легко включати Ajax за рахунок вбудованої підтримки цієї технології. У цьому розділі ви дізнаєтесь, як:
- Перезавантажити тільки частину сторінки на запит користувача
- Створювати Javascript об'єкти з допомогою Rails засобів
- Як використовувати зовнішні бібліотеки для відображення ефектів на сторінках з допомогою JavaScript (Prototype і Script.aculo.us)
- Включення інших популярних JavaScript бібліотек, наприклад, jQuery
Створення веб-сервісів з Ruby On Rails
Rails дозволяє легко надати доступ до вашої програми ззовні, особливо, якщо ви збираєтесь слідувати концепціїї REST. У цій частині курсу ви дізнаєтеся, як:
- Визначення "REST" веб-сервісів
- Використання REST-шляхів для забезпечення доступу до функціональності вашого сервісу
- Доступ до інших веб-сервісів
- Створення RSS або Atom потоків, щоб користувачі могли мати доступ до ваших даних читаючи канали або з допомогою агрегаторів
Основи безпеки
У цьому уроці ви дізнаєтеся як захищати ваші дані та секретну інформацію ваших користувачів з допомогою засобів Ruby on Rails:
- Обробка та контроль вхідних даних
- Уникнення SQL ін'єкцій, дотримуючись перевіреної практики використання Activerecord
- Використання перевірених підходів для аутентифікації користувачів
- Розуміння основ SSL і потреб, при яких його варто використовувати у вашій програмі
Встановлення програми на хостінг
Тепер час встановити ваш проект на хостінг та показати його користувачам. Отже, ми вчимося:
- Поняття хостингу. Загальний, віртуальний сервер.
- Методи встановлення Рейлз-проектів на сервері. Можливі зв'язки програмного забезпечення: Apache + Passenger, Nginx + Passenger, Apache + Mongrel, FastCGI
- Автоматичне встановлення проекту на хостінг - Capisrtano
- Основи адміністрування та настройки Linux для встановлення Rails-проектів
Передумови для навчання
- Знайомство з об'єктно-орієнтованим програмуванням
- Базове знання HTML
- Основи роботи з базами даних